Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Функция СведенияОВнешнейОбработке() Экспорт
- ПараметрыРегистрации = Новый Структура;
- МассивНазначений = Новый Массив;
- МассивНазначений.Добавить("Документ.РеализацияТоваровУслуг"); //Указываем документ к которому делаем внешнюю печ. форму
- ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма"); //может быть - ЗаполнениеОбъекта,
- //ДополнительныйОтчет, СозданиеСвязанныхОбъектов...
- ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
- ПараметрыРегистрации.Вставить("Наименование", "ПересчетТоваров внешняя"); //имя под которым обработка
- // будет зарегестрирована в справочнике внешних обработок
- ПараметрыРегистрации.Вставить("БезопасныйРежим", ЛОЖЬ);
- ПараметрыРегистрации.Вставить("Версия", "1.0");
- ПараметрыРегистрации.Вставить("Информация", "Дополнительная печатная форма к документу Пересчет товаров");
- ТаблицаКоманд = ПолучитьТаблицуКоманд();
- ДобавитьКоманду(ТаблицаКоманд, "Пересчет товаров внешняя", "ЗаданиеПересчетТоваров1", "ВызовСерверногоМетода", Истина, "ПечатьMXL");
- ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
- Возврат ПараметрыРегистрации;
- КонецФункции
- Функция ПолучитьТаблицуКоманд()
- Команды = Новый ТаблицаЗначений;
- Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));//как будет выглядеть описание
- //печ.формы для пользователя
- Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка")); //имя макета печ.формы
- Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка")); //ВызовСерверногоМетода
- Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
- Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
- Возврат Команды;
- КонецФункции
- Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
- НоваяКоманда = ТаблицаКоманд.Добавить();
- НоваяКоманда.Представление = Представление;
- НоваяКоманда.Идентификатор = Идентификатор;
- НоваяКоманда.Использование = Использование;
- НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
- НоваяКоманда.Модификатор = Модификатор;
- КонецПроцедуры
- Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
- // Если например в печатную форму необходимо вставить Организацию, тогда
- Организация = ЗначениеНастроекПовтИсп.ПолучитьОрганизациюПоУмолчанию(Организация);
- ПараметрыПечати = Новый Структура;
- //ПараметрыПечати.Вставить("Организация",Организация);
- // Если например в печатную форму необходимо вставить Организацию, тогда
- Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ЗаданиеПересчетТоваров1") Тогда
- УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ЗаданиеПересчетТоваров1", "Пересчет товаров внешняя1", СформироватьПечатнуюФормуТТН(МассивОбъектов[0], ОбъектыПечати,ПараметрыПечати));
- КонецЕсли;
- КонецПроцедуры // Печать()
- Функция СформироватьПечатнуюФормуТТН(Об,ОбъектыПечати,ПараметрыПечати) Экспорт
- ТабДок = новый ТабличныйДокумент;
- ПараметрыПечати = Новый Структура("ВыводитьУслуги", Истина);
- //ТекДок = МассивОбъектов[0];
- Макет = ПолучитьМакет("ЗаданиеПересчетТоваров1");
- ВыводитьГрадацииКачества = Ложь;//ПараметрыПечати.ВыводитьГрадацииКачества;
- ВыводитьРезультатыПересчета = Ложь;//ПараметрыПечати.ВыводитьРезультатыПересчета;
- ТекДок = Новый ТабличныйДокумент;
- ТекДок.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_1";
- ОбластьШапки = Макет.ПолучитьОбласть("Шапка");
- Запрос = новый запрос;
- //Запрос.УстановитьПараметр("МассивОбъектов",МассивОбъектов);
- Запрос.Текст = "ВЫБРАТЬ
- | РеализацияТоваровУслуг.Контрагент КАК Кон,
- | РеализацияТоваровУслуг.Контрагент.Наименование,
- | РеализацияТоваровУслуг.АдресДоставки,
- | КонтрагентыКонтактнаяИнформация.НомерТелефона
- |ИЗ
- | Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
- | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты.КонтактнаяИнформация КАК КонтрагентыКонтактнаяИнформация
- | ПО РеализацияТоваровУслуг.Контрагент = КонтрагентыКонтактнаяИнформация.Ссылка
- |ГДЕ
- | РеализацияТоваровУслуг.Ссылка В(&ТекДок)";
- Запрос.УстановитьПараметр("ТекДок",Об);
- Выборка = Запрос.Выполнить().Выбрать();
- Пока выборка.Следующий() цикл
- ОбластьШапки.Параметры.КонтрагентНаименование = Выборка.КонтрагентНаименование;
- Если ЗначениеЗаполнено(Выборка.АдресДоставки) тогда
- ОбластьШапки.Параметры.АдресДоставки = Выборка.АдресДоставки
- иначе ОбластьШапки.Параметры.АдресДоставки = ВАдресКон(Выборка.Кон);
- КонецЕсли;
- ОбластьШапки.Параметры.телефон = Выборка.НомерТелефона;
- КонецЦикла;
- возврат ТабДок;
- КонецФункции
- Функция ВАдресКон(Кон)
- Адрес = "";
- Вид = Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента;
- Запрос = Новый Запрос();
- Запрос.УстановитьПараметр("Контрагент", Кон);
- Запрос.УстановитьПараметр("Вид", Вид);
- Запрос.Текст =
- "ВЫБРАТЬ
- | Таб.Представление КАК Адрес
- |ИЗ
- | Справочник.Контрагенты.КонтактнаяИнформация КАК Таб
- |ГДЕ
- | Таб.Ссылка = &Контрагент
- | И Таб.Вид = &Вид";
- Выборка = Запрос.Выполнить().Выбрать();
- Если Выборка.Следующий() Тогда
- Адрес = Выборка.Адрес;
- КонецЕсли;
- Возврат Адрес;
- КонецФункции
Advertisement
Add Comment
Please, Sign In to add comment