
Пошаговая инструкция по настройке обмена данных между 1С:БП и 1С:УТ. Узнайте о всех нюансах синхронизации в пошаговой инструкции
Решаем задачи автоматизации
На базе программ 1С
И собственных решений
А потом обслуживаем
По разумным ценам
Фиксированная стоимость и сроки. Оперативно. Оплата полезных фактических трудозатрат.
В конфигурациях на базе платформы в 1С:Предприятие 8.3 имеется довольно широкий ассортимент типовых печатных форм, но бывают ситуации, когда необходима разработка уникального печатного документа.
Разработаем печатную форму для документа «Заказ клиента»: заходим в конфигуратор, нажимаем кнопку «Файл-Новый-Внешняя обработка».
Вводим название печатной формы в поле Имя и Синоним.
В модуле объекта укажем, что вид обработки – печатная форма, что она должна быть прикреплена к Заказу клиента:
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1");
ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиПечатнаяФорма();
ПараметрыРегистрации.Версия = "1.1";
ПараметрыРегистрации.Назначение.Добавить("Документ.ЗаказКлиента");
НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
НоваяКоманда.Представление = НСтр("ru = 'Протокол согласования цен'");
НоваяКоманда.Идентификатор = "ПротоколСогласованияЦенЗаказаКлиента";
НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
НоваяКоманда.ПоказыватьОповещение = Истина;
НоваяКоманда.Модификатор = "ПечатьMXL";
Возврат ПараметрыРегистрации;
КонецФункции
Следующим этапом нужно прописать процедуры печати для вызова печати из общих модулей конфигурации.
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыПечати = Неопределено) Экспорт
УстановитьПривилегированныйРежим(Истина);
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ПротоколСогласованияЦенЗаказаКлиента") Тогда
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ПротоколСогласованияЦенЗаказаКлиента", НСтр("ru = 'Протокол согласования цен'"),
ПечатьПСЦ(МассивОбъектов, ОбъектыПечати));
КонецЕсли;
КонецПроцедуры
Добавляем новый макет печатной формы к обработке.
Создаем необходимые строки и столбцы:
Для вывода данных в параметры печатной формы используем функцию ПечатьПСЦ:
Функция ПечатьПСЦ(МассивОбъектов, ОбъектыПечати)
Макет = ПолучитьМакет("Макет");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЗаказКлиентаТовары.Ссылка.Договор.Номер КАК ДоговорНомер,
| ЗаказКлиентаТовары.Ссылка.Организация.ИНН КАК ОрганизацияУНП,
| ЗаказКлиентаТовары.Цена КАК Цена,
| ЗаказКлиентаТовары.Ссылка.Номер КАК НомерДок,
| ЗаказКлиентаТовары.Ссылка.Дата КАК ДатаДок,
| ЗаказКлиентаТовары.Ссылка.Договор.ДатаОкончанияДействия КАК ДатаОкончанияДоговора,
| ЗаказКлиентаТовары.Ссылка КАК Ссылка
|ИЗ
| Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
|ГДЕ
| ЗаказКлиентаТовары.Ссылка В(&Объекты)
|ИТОГИ ПО
| Ссылка";
Запрос.УстановитьПараметр("Объекты", МассивОбъектов);
Результат = Запрос.Выполнить();
Если Результат.Пустой() Тогда
Возврат Новый ТабличныйДокумент;
КонецЕсли;
ТабДок = Новый ТабличныйДокумент;
ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
ТабДок.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ПротоколСогласованияЦен";
ТабДок.ПолеСверху = 0;
ТабДок.ПолеСлева = 0;
ТабДок.ПолеСнизу = 0;
ТабДок.ПолеСправа = 0;
ТабДок.РазмерКолонтитулаСверху = 0;
ТабДок.РазмерКолонтитулаСнизу = 0;
ТабДок.АвтоМасштаб = Истина;
Шапка = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока Шапка.Следующий() Цикл
Если ТабДок.ВысотаТаблицы > 0 Тогда
ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
НомерСтрокиНачало = ТабДок.ВысотаТаблицы + 1;
ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
ТабДок.Вывести(ОбластьШапкаТаблицы);
Выборка = Шапка.Выбрать();
Пока Выборка.Следующий() Цикл
ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");
Если ЗначениеЗаполнено(Выборка.ДоговорНомер) Тогда
ОбластьДетальныхЗаписей.Параметры.НомерПСЦ = СокрЛП(Выборка.ДоговорНомер) + "-" + ПрефиксацияОбъектовКлиентСервер.ПолучитьНомерНаПечать(Выборка.НомерДок, Истина, Истина);
КонецЕсли;
Если ЗначениеЗаполнено(Выборка.ОрганизацияУНП) Тогда
ОбластьДетальныхЗаписей.Параметры.ОрганизацияУНП = Число(Выборка.ОрганизацияУНП);
КонецЕсли;
Если ЗначениеЗаполнено(Выборка.Цена) Тогда
ОбластьДетальныхЗаписей.Параметры.Цена = Выборка.Цена;
КонецЕсли;
Если ЗначениеЗаполнено(Выборка.ДатаДок) Тогда
ОбластьДетальныхЗаписей.Параметры.ДатаДок = Выборка.ДатаДок;
КонецЕсли;
Если ЗначениеЗаполнено(Выборка.ДатаОкончанияДоговора) Тогда
ОбластьДетальныхЗаписей.Параметры.ДатаОкончанияДоговора = Выборка.ДатаОкончанияДоговора;
КонецЕсли;
ТабДок.Вывести(ОбластьДетальныхЗаписей);
КонецЦикла;
УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабДок, НомерСтрокиНачало, ОбъектыПечати, Шапка.Ссылка);
КонецЦикла;
Возврат ТабДок;
КонецФункции
После создания необходимо подключить обработку в рабочую базу. Нужно зайти в раздел «НСИ и Администрирование-Печатные формы, отчеты и обработки».
Затем нажимаем «Дополнительные отчеты и обработки».
В командной панели нажимаем кнопку «Создать».
Программа выдаст окно проводника для выбора внешнего файла обработки. После загрузки файла программа из сведений об обработке подтянет название печатной формы, вид обработки (печатная форма), а также размещение печатной формы в документе «Заказ клиента».
Новая внешняя печатная форма будет отображаться в печати документа «Заказ клиента», а также в списке заказов.
После открытия печатной формы можно ее вывести на печать.
Самостоятельная разработка печатной формы – выполнимая задача для продвинутого пользователя 1С, и добавление внешней печатной формы в базу также не составит труда. Программа сама определит на основании данных, введенных в коде обработки, что обработка – это печатная форма, и сама поместит печатную форму в нужный объект базы.
Пошаговая инструкция по настройке обмена данных между 1С:БП и 1С:УТ. Узнайте о всех нюансах синхронизации в пошаговой инструкции
Синхронизация 1С:УТ и 1С:Розница. Правила обмена, настройка переноса данных поэтапно в виде подробной инструкции, советы и рекомендации от экспертов.
В этой статье мы рассмотрим как сформировать резервы отпусков в 1С:ЗУП.
Подпишитесь на рассылку и получайте самые свежие статьи 1 раз в месяц специально для вас