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

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

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

Оффлайн GanG031

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

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


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

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



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

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

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


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


Оффлайн Rasty

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

Оффлайн GanG031

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

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

Оффлайн Rasty

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

Оффлайн GanG031

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

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

Оффлайн Rasty

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

Оффлайн GanG031

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

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

Оффлайн Rasty

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


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

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

Оффлайн GanG031

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

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

...

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

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




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


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


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

Оффлайн Rasty

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


Теги:
 


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

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

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


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

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
145 Сообщений
ilyay ilyay
63 Сообщений
alex0402
50 Сообщений
AIFrame
50 Сообщений
andron81_81
44 Сообщений
oleg-x
42 Сообщений
BuhRust
32 Сообщений
MuI_I_Ika MuI_I_Ika
31 Сообщений
Golickoff Golickoff
28 Сообщений
alexandr_ll
24 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal