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

СМОТРЕТЬ >>

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

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

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

Оффлайн GanG031

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

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


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

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



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

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

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


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


Оффлайн Rasty

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

Оффлайн GanG031

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

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

Оффлайн Rasty

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

Оффлайн GanG031

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

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

Оффлайн Rasty

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

Оффлайн GanG031

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

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

Оффлайн Rasty

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


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

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

Оффлайн GanG031

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

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

...

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

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




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


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


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

Оффлайн Rasty

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


Теги:
 


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

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

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


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

* Реклама

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

СМОТРЕТЬ >>

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
80 Сообщений
wise wise
63 Сообщений
MuI_I_Ika MuI_I_Ika
49 Сообщений
Dethmontt Dethmontt
49 Сообщений
alex0402
43 Сообщений
Сергей Федоров Сергей Федоров
32 Сообщений
ilyay ilyay
27 Сообщений
ilnur75
25 Сообщений
Дмитрий Медведков
19 Сообщений
DmitriyF DmitriyF
17 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal