Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
26 Сен 2017, 10:24
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: (печать)  (Прочитано 1191 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Онлайн GanG031

  • ***
  • Сообщений: 153
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-10-28
  • Сайт: 
  • Профессия: Ученик 1С
(печать)
« Первое сообщение: 02 Июн 2016, 10:47 »
Доброго времени суток, уважаемые! Суть в следующем: переписываю обработку с обычных форм под управляемые. Конфигурация БП 2.0 на БП 3.0 (Обе дописанные).
Вот код одной процедуры в обычном приложении:
 Процедура Печать(ПараметрПечати = "")
   РезультирующийДокумент = Новый ТабличныйДокумент;
   Если ЗначениеЗаполнено(ДатаОсмотра) = Ложь Тогда
      Сообщить("Дата осмотра не указана...");
      Возврат;
   КонецЕсли;
   //Таб = Новый ТабличныйДокумент;
   Макет = ПолучитьМакет("Макет");
   ОбластьПустаяСтрока = Макет.ПолучитьОбласть("ПустаяСтрока");
   ДокументПечати = ЭлементыФормы.ТаблицаДокументов.ТекущиеДанные;
   Если ДокументПечати = Неопределено Тогда
      Возврат;
   КонецЕсли;
   
   Если Не ЗначениеЗаполнено(ПараметрПечати) Тогда
      СписокДокументовПечати = ТаблицаДокументов.СкопироватьКолонки();
      ЗаполнитьЗначенияСвойств(СписокДокументовПечати.Добавить(), ДокументПечати);

   Иначе
      СписокДокументовПечати = ТаблицаДокументов.Скопировать();
   КонецЕсли;
   
   
   Для Каждого ДокументПечати Из СписокДокументовПечати Цикл
      Таб = Новый ТабличныйДокумент;
      // Заполнение шапки
      ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
      ПарШапки = ОбластьШапка.Параметры;
      ПарШапки.ДатаСоставления = Формат(ДатаСоставления, "ДЛФ=DD");
      ПарШапки.Организация = Организация.ПолноеНаименование();
      ПарШапки.СтруктурноеПодразделение = СтруктурноеПодразделение;
      ПарШапки.Модель = ДокументПечати.ТС.Наименование;
      ТаблицаОтветственных = РегистрыСведений.ОтветственныеЛица.СрезПоследних(, новый Структура ("СтруктурнаяЕдиница", Склад));
      Если ТаблицаОтветственных.Количество() = 0  Тогда
         Сообщить("Складу не назначен ответственный...");
      ...


ТаблицаДокументов это реквизит формы, который имеет тип таблица значений. Проблема возникла вот в чем: Выделил зеленым цветом. Как получить список документов для печати в управляемой форме?
делал вот так:
&НаКлиенте
Процедура ПечатьТекущегоДокументаНаКлиенте1(Команда)
   ПараметрПечати = "";
   ДокументПечати = Элементы.ТаблицаДокументов.ТекущиеДанные;
   
   Если ДокументПечати = Неопределено Тогда
      Возврат;
   КонецЕсли;

ПолучитьСписокДокументовПечати(ПараметрПечати = "",ДокументПечати);



Функция ПолучитьСписокДокументовПечати(ПараметрПечати = "",ДокументПечати)
   Если Не ЗначениеЗаполнено(ПараметрПечати) Тогда

        СписокДокументовПечати = РеквизитФормыВЗначение("ТаблицаДокументов" , ТИП("ТаблицаЗначений"));
      СписокДокументовПечати = ЗначениеВРеквизитФормы(СписокДокументовПечати, "ТаблицаДокументов");
      ЗаполнитьЗначенияСвойств(СписокДокументовПечати.Добавить(), ДокументПечати);
   Иначе
      СписокДокументовПечати = ТаблицаДокументов.Скопировать();
КонецЕсли;
       Возврат     СписокДокументовПечати;

КонецФункции // ПолучитьСписокДокументовПечати()


Но ругается на вот что: Ошибка отображения типов. Отсутствует отображение для данныеформыколлекция.
Подскажите, как сделать правильней? заранее спасибо!


Оффлайн Rasty

  • *****
  • Сообщений: 976
  • РЕПУТАЦИЯ: 138
  • КПД: 14%
  • Регистрация: 2015-03-25
    • Skype: alex1cbit
  • Сайт: 
  • Профессия: Программист 1С
Re: (печать)
« Ответ #1: 02 Июн 2016, 10:50 »
вот тут ошибка
 ДокументПечати = ЭлементыФормы.ТаблицаДокументов.ТекущиеДанные;
передавайте ссылку на документ а не коллекцию формы
Помогли - Скажи спасибо! Решил сам - поделись решением!
:)

Онлайн GanG031

  • ***
  • Сообщений: 153
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-10-28
  • Сайт: 
  • Профессия: Ученик 1С
Re: (печать)
« Ответ #2: 02 Июн 2016, 10:51 »
вот тут ошибка
 ДокументПечати = ЭлементыФормы.ТаблицаДокументов.ТекущиеДанные;
передавайте ссылку на документ а не коллекцию формы

Там просто будет не один документ. Правильнее бы было назвать эту переменную "ДокументыПечати". Или это не имеет значения?

Оффлайн Rasty

  • *****
  • Сообщений: 976
  • РЕПУТАЦИЯ: 138
  • КПД: 14%
  • Регистрация: 2015-03-25
    • Skype: alex1cbit
  • Сайт: 
  • Профессия: Программист 1С
Re: (печать)
« Ответ #3: 02 Июн 2016, 10:58 »
в уф еще есть ВыделенныеСтроки, как называть это вам решать
Помогли - Скажи спасибо! Решил сам - поделись решением!
:)

Онлайн GanG031

  • ***
  • Сообщений: 153
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-10-28
  • Сайт: 
  • Профессия: Ученик 1С
Re: (печать)
« Ответ #4: 02 Июн 2016, 11:04 »
вот тут ошибка
 ДокументПечати = ЭлементыФормы.ТаблицаДокументов.ТекущиеДанные;
передавайте ссылку на документ а не коллекцию формы

В обычном приложениии эта переменная имеет тип "Строка таблицы значений". Не понятно, зачем передавать ссылку на документ?

Оффлайн Rasty

  • *****
  • Сообщений: 976
  • РЕПУТАЦИЯ: 138
  • КПД: 14%
  • Регистрация: 2015-03-25
    • Skype: alex1cbit
  • Сайт: 
  • Профессия: Программист 1С
Re: (печать)
« Ответ #5: 02 Июн 2016, 11:06 »
так вы же делаете для уф, если не ссылку на документ то что передавать в документпечати?
Помогли - Скажи спасибо! Решил сам - поделись решением!
:)

Онлайн GanG031

  • ***
  • Сообщений: 153
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-10-28
  • Сайт: 
  • Профессия: Ученик 1С
Re: (печать)
« Ответ #6: 02 Июн 2016, 11:08 »
так вы же делаете для уф, если не ссылку на документ то что передавать в документпечати?

а как подскажите передать эту ссылку? Откуда ее взять?

Оффлайн Rasty

  • *****
  • Сообщений: 976
  • РЕПУТАЦИЯ: 138
  • КПД: 14%
  • Регистрация: 2015-03-25
    • Skype: alex1cbit
  • Сайт: 
  • Профессия: Программист 1С
Re: (печать)
« Ответ #7: 02 Июн 2016, 11:09 »
в уф еще есть ВыделенныеСтроки


Добавлено: 02 Июн 2016, 11:10

смотрите что в них, смотрите что в элементе, находите ссылку
Помогли - Скажи спасибо! Решил сам - поделись решением!
:)

Онлайн GanG031

  • ***
  • Сообщений: 153
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-10-28
  • Сайт: 
  • Профессия: Ученик 1С
Re: (печать)
« Ответ #8: 02 Июн 2016, 11:38 »
Попробовал сделать так: &НаКлиенте
Процедура ПечатьТекущегоДокументаНаКлиенте1(Команда)
   ПараметрПечати = "";
   ДокументПечати = Элементы.ТаблицаДокументов.ВыделенныеСтроки;
   
   Если ДокументПечати = Неопределено Тогда
      Возврат;
   КонецЕсли;

ПолучитьСписокДокументовПечати(ПараметрПечати = "");
ПечатьТекущегоДокумента(ПараметрПечати = "", ИсточникСтрок);

...

Процедура ПечатьТекущегоДокумента(ПараметрПечати = "",ИсточникСтрок)
   
   
   Если Не ЗначениеЗаполнено(ПараметрПечати) Тогда
      СписокДокументовПечати = Элементы.ТаблицаДокументов;
      
      ИсточникСтрок =   ПолучитьСписокДокументовПечати(ПараметрПечати = "") ;

      ЗаполнитьЗначенияСвойств(СписокДокументовПечати.Добавить(), ИсточникСтрок);
   Иначе
      СписокДокументовПечати = ТаблицаДокументов.Скопировать();
   КонецЕсли;
...




Функция ПолучитьСписокДокументовПечати(ПараметрПечати = "")
   МассивИдентификаторовСтрок = Элементы.ТаблицаДокументов.ВыделенныеСтроки;
      Для каждого ИдентификаторСтроки Из МассивИдентификаторовСтрок Цикл
      
         МассивСтрокДляПечати = Новый Массив;
         МассивСтрокДляПечати.Добавить(ЭтотОбъект.ТаблицаДокументов.НайтиПоИдентификатору(ИдентификаторСтроки));
      
      КонецЦикла;
       ИсточникСтрок =  МассивСтрокДляПечати;
       Возврат ИсточникСтрок;


КонецФункции // ПолучитьСписокДокументовПечати()


Но все равно что то не так....

Оффлайн Rasty

  • *****
  • Сообщений: 976
  • РЕПУТАЦИЯ: 138
  • КПД: 14%
  • Регистрация: 2015-03-25
    • Skype: alex1cbit
  • Сайт: 
  • Профессия: Программист 1С
Re: (печать)
« Ответ #9: 02 Июн 2016, 11:46 »
дайте угадаю, такая же ошибка?
Помогли - Скажи спасибо! Решил сам - поделись решением!
:)


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

oleg-x
135 Сообщений
alex0402
81 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
76 Сообщений
BuhRust
24 Сообщений
Golickoff Golickoff
23 Сообщений
ilyay ilyay
21 Сообщений
AIFrame
21 Сообщений
Kironten
20 Сообщений
Варвар
20 Сообщений
Римма
18 Сообщений

* Кто онлайн

  • Точка Гостей: 1026
  • Точка Скрытых: 0
  • Точка Пользователей: 14
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal