Печать ценников
Всем доброго дня. Занимаюсь изучением 1с и для этого пишу свою конфигурацию, дабы по лучше разобраться и набить руку. возникла следующая проблема. решил реализовать печать ценников. Для этого создал обработку. на форме обработки поместил табличную часть, в которую можно надергать требуемую номенклатуру, и сделал кнопку "печать".
И вот тут возникла проблема:
Код для печати поместил в "Модуль менеджера" моей обработки. Нужно как то передать данные из "модуля формы" в "Модуль менеджера". Сначала хотел сделать в "Модуле менеджера" таблицу значений, и передать ее в "Модуль менеджера", но не тут то было. Таблица значений не доступна тонком клиенте. Возникла шальная мысль сделать запрос из "Модуля менеджера", но опять же фокус не удался, не к чему обращаться :).
собственно прошу натолкнуть на мысль, каким образом передать данные?
можно конечно по простому в "модуле формы" сделать цикл, и передавать данные как параметры. Этот способ справится если печатать ценник для одной номенклатуры, а вот если их десять, то откроется 10 печатных форм с ценниками, что тоже не вариант.
И вот тут возникла проблема:
Код для печати поместил в "Модуль менеджера" моей обработки. Нужно как то передать данные из "модуля формы" в "Модуль менеджера". Сначала хотел сделать в "Модуле менеджера" таблицу значений, и передать ее в "Модуль менеджера", но не тут то было. Таблица значений не доступна тонком клиенте. Возникла шальная мысль сделать запрос из "Модуля менеджера", но опять же фокус не удался, не к чему обращаться :).
собственно прошу натолкнуть на мысль, каким образом передать данные?
можно конечно по простому в "модуле формы" сделать цикл, и передавать данные как параметры. Этот способ справится если печатать ценник для одной номенклатуры, а вот если их десять, то откроется 10 печатных форм с ценниками, что тоже не вариант.
По теме из базы знаний
- Печать ценников и этикеток с двумя видами цен посредством типового механизма в Рознице 2.3
- Печать ценников по табличной части любого документа
- Печать ценников с двумя ценами (УТ 10.3, КА 1.1, УПП 1.3)
- Печать ценников с двумя ценами из документов (УТ 10.3, КА 1.1, УПП 1.3)
- Печать ценников со штрихкодом (БП 3.0)
Найденные решения
(7) все что в кноке печать1 на клиенте,
сделай в процедуре печать на сервере
те
там у тебя должно остаться
&НаСервере
Процедура Печать(Табдок)
тут обходишь строки в цикле,
выводишь ценник,
и выводишь горизонтальный разделитель страниц.
КонецЦикла
или заморациваешься с таблицей значений, на сервере она сработает
КонецПроцедуры
сделай в процедуре печать на сервере
те
там у тебя должно остаться
&НаКлиенте
Процедура Печать1(Команда)
ТабДок = Новый ТабличныйДокумент;
Печать(ТабДок);
ТабДок.Показать();
КонецПроцедуры
Показать&НаСервере
Процедура Печать(Табдок)
тут обходишь строки в цикле,
выводишь ценник,
и выводишь горизонтальный разделитель страниц.
КонецЦикла
или заморациваешься с таблицей значений, на сервере она сработает
КонецПроцедуры
(7) Не прав в том, что создаешь свою таблицу в модуле формы...
Сначала насоздавал себе трудностей - теперь ломаешь голову как с этим бороться...
Я еще раз рекомендую - создай табличную часть у объекта Обработка и обращайся потом к ней откуда угодно и из формы и из модуля объекта
Сначала насоздавал себе трудностей - теперь ломаешь голову как с этим бороться...
Я еще раз рекомендую - создай табличную часть у объекта Обработка и обращайся потом к ней откуда угодно и из формы и из модуля объекта
Остальные ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
(1) какой код для печати ты разместил в модуле формы ?
Запросы все равно на сервере делать придется.
Поэтому все формирование нужно делать в какой то процедуре на сервере, ну или в менеджере.
Туда только входные параметры передавай, например массив ссылок на нужные объекты, а вернуть она должна готовый табличный документ.
Посмотри в типовых конфигурациях, как в менеджерах печатные формы делаются. именно так.
А на форме, остается только какая-то интерактивная работа, минимально необходимая для выбора данных.
Запросы все равно на сервере делать придется.
Поэтому все формирование нужно делать в какой то процедуре на сервере, ну или в менеджере.
Туда только входные параметры передавай, например массив ссылок на нужные объекты, а вернуть она должна готовый табличный документ.
Посмотри в типовых конфигурациях, как в менеджерах печатные формы делаются. именно так.
А на форме, остается только какая-то интерактивная работа, минимально необходимая для выбора данных.
(2)На самом деле кода на форме минимум.
Но он не работает, т.к. "ТаблицаЗначений;" не доступна на тонком клиенте
&НаКлиенте
Процедура Печать1(Команда)
ТабДок = Новый ТабличныйДокумент;
ТаблицаДанных=Новый ТаблицаЗначений;
ТаблицаДанных.Колонки.Добавить("Номенклатура");
ТаблицаДанных.Колонки.Добавить("Цена");
Для Каждого ТекСтрока ИЗ Объект.ЗИП Цикл
Номенклатура=ТекСтрока.Номенклатура;
Цена=ТекСтрока.ЦенаОтгрузки;
НоваяСтрока=ТаблицаДанных.Добавить();
НоваяСтрока["Номенклатура"]=Номенклатура;
НоваяСтрока["Цена"]=Цена;
КонецЦикла;
Печать(ТабДок,ТаблицаДанных);
ТабДок.ОтображатьСетку = Ложь;
ТабДок.Защита = Ложь;
ТабДок.ТолькоПросмотр = Ложь;
ТабДок.ОтображатьЗаголовки = Ложь;
ТабДок.Показать();
КонецПроцедуры
&НаСервере
Процедура Печать(ТабДок,ТаблицаДанных)
Обработки.ПечатьЦенников.Ценники(ТабДок,ТаблицаДанных);
КонецПроцедуры
ПоказатьНо он не работает, т.к. "ТаблицаЗначений;" не доступна на тонком клиенте
(4)
понятное дело,
и незачем.
все делай на сервере.
На клиенте кроме табдока ничего и не нужно.
Да и на сервере, у тебя процедура с контекстом формы, а значит что строки ты перебирать можешь и там.
Но он не работает, т.к. "ТаблицаЗначений;" не доступна на тонком клиенте
понятное дело,
и незачем.
все делай на сервере.
На клиенте кроме табдока ничего и не нужно.
Да и на сервере, у тебя процедура с контекстом формы, а значит что строки ты перебирать можешь и там.
(1)
А это уже как процедуру сделаешь печати.
Почему 10 форм ?
Передаешь массив объектов, по каждому из которых у тебя печатается ценник.
В самой процедуре печати, инициализируешь табюличный документ,
потов в цикле заполняешь макет, и впечатываешь горизонтальный разделитель страниц.
и снова выводишь ценник в тот же табличный документ.
Как цикл закончится, возвращаешь наружу 1 ин, табличный документ с много-много ценниками
можно конечно по простому в "модуле формы" сделать цикл, и передавать данные как параметры. Этот способ справится если печатать ценник для одной номенклатуры, а вот если их десять, то откроется 10 печатных форм с ценниками, что тоже не вариант.
А это уже как процедуру сделаешь печати.
Почему 10 форм ?
Передаешь массив объектов, по каждому из которых у тебя печатается ценник.
В самой процедуре печати, инициализируешь табюличный документ,
потов в цикле заполняешь макет, и впечатываешь горизонтальный разделитель страниц.
и снова выводишь ценник в тот же табличный документ.
Как цикл закончится, возвращаешь наружу 1 ин, табличный документ с много-много ценниками
(3)вот для того что бы так получилось, нужно как то передать все данные в модуль менеджера, что бы там сформировать табличный документ. т.е. передать все за один раз, в противном случае потребуется цикл и тогда процедура в модуле менеджера выполнится несколько раз. или подскажи, где я не прав.
(7) все что в кноке печать1 на клиенте,
сделай в процедуре печать на сервере
те
там у тебя должно остаться
&НаСервере
Процедура Печать(Табдок)
тут обходишь строки в цикле,
выводишь ценник,
и выводишь горизонтальный разделитель страниц.
КонецЦикла
или заморациваешься с таблицей значений, на сервере она сработает
КонецПроцедуры
сделай в процедуре печать на сервере
те
там у тебя должно остаться
&НаКлиенте
Процедура Печать1(Команда)
ТабДок = Новый ТабличныйДокумент;
Печать(ТабДок);
ТабДок.Показать();
КонецПроцедуры
Показать&НаСервере
Процедура Печать(Табдок)
тут обходишь строки в цикле,
выводишь ценник,
и выводишь горизонтальный разделитель страниц.
КонецЦикла
или заморациваешься с таблицей значений, на сервере она сработает
КонецПроцедуры
(7) Не прав в том, что создаешь свою таблицу в модуле формы...
Сначала насоздавал себе трудностей - теперь ломаешь голову как с этим бороться...
Я еще раз рекомендую - создай табличную часть у объекта Обработка и обращайся потом к ней откуда угодно и из формы и из модуля объекта
Сначала насоздавал себе трудностей - теперь ломаешь голову как с этим бороться...
Я еще раз рекомендую - создай табличную часть у объекта Обработка и обращайся потом к ней откуда угодно и из формы и из модуля объекта
Вакансии
Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)