Версия для печати темы (https://pro1c.org.ua/index.php?s=2f20af41329f63f2b03484cfed68c937&showtopic=35458)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование обычных форм 1С 8.2 и не интерфейсной логики _ Количество распечаток накладных в Реализации

Автор: Constantus 22.02.17, 8:13

Приветствую, форумчане!

УТ 10.3.20.1, Моби-С 5.5, "ABBYY Ukraine", обычные

Клиенту захотелось видеть сколько раз печаталась накладная в документе "Реализация товаров и услуг", т.е. был реквизит в форме списка, который бы показывал сколько раз был данный документ распечатан.

Как программно можно будет изменять значение этого реквизита при каждой печати документа?

Автор: Acid 22.02.17, 8:22

Constantus @ Сегодня, 8:13 * ,
Лучше делать запись данного события в Журнал регистрации. Из журнала и будете смотреть.

Автор: Constantus 22.02.17, 8:30

Acid @ Сегодня, 11:22 * ,

Подскажите как сделать эту запись события и чтобы пользователю было более удобно просматривать данные из журнала

Автор: Vofka 22.02.17, 11:53

Цитата(Constantus @ 22.02.17, 8:13) *
Как программно можно будет изменять значение этого реквизита при каждой печати документа?

В функции печати, по идее, доступна ссылка. Вот по ссылке получайте объект и делайте с ним что надо.

Цитата(Acid @ 22.02.17, 8:22) *
Лучше делать запись данного события в Журнал регистрации. Из журнала и будете смотреть.

Выводить что-то в форме списка чего-то из журнала регистрации - это сильно. Вы извращенец. mamba.gif

Автор: logist 22.02.17, 15:04

Цитата(Acid @ 22.02.17, 9:22) *
Лучше делать запись данного события в Журнал регистрации. Из журнала и будете смотреть.

Лучше в регистр сведений.
Однако надо понимать, что записать туда можно только нажатие кнопки Печать, распечаталась ли фактически накладная - нельзя отследить.

Автор: Constantus 23.02.17, 9:44

Проблему решил:

        Если ИмяМакета = "Накладная" Тогда
            КоличествоЭкземпляров = 2;
            Печать = Печать + 1;
            //Сообщить("" + Номер + " " + Печать);
            Записать();
            ТабДокумент = ПечатьДокумента(,КоличествоЭкземпляров,2,ИмяМакета);



В модуле объекта Реализации в процедуре

Процедура Печать(ИмяМакета, КоличествоЭкземпляров = 1, НаПринтер = Ложь) Экспорт

Автор: logist 23.02.17, 13:48

Цитата(Constantus @ 23.02.17, 10:44) *
Проблему решил:

Главное что бы при этом не возникла другая проблема, если один будет работать с документом, а другой захочет распечатать его из списка, то когда первый захочет сохранить свои изменения - ему скажет "Данные были изменены" и всё, меняй по новой smile.gif

Автор: Acid 23.02.17, 14:40

Цитата(Constantus @ 23.02.17, 9:44) *
Проблему решил:

Предположим, что через месяц период закроют, а документ захотят распечатать из закрытого периода. Что произойдет?

Автор: Flexy 23.02.17, 14:56

Цитата(Constantus @ 23.02.17, 9:44) *
Проблему решил:

...и создал как минимум две новых laugh.gif
Это получается при каждой печати перезапись документа в БД + головняк с блокировками. Короче, не эффективно.
Имхо самое нормальное решение сделать РС и записывать в него нажатия кнопки "Печать".

Автор: Constantus 24.02.17, 8:16

Flexy @ Вчера, 17:56 * ,

Согласен с вышеизложенными доводами. Перспективу проблем понял.
Согласен загонять в регистр сведений, но как тогда в форме списка вывести эти данные из регистра быстрым способом, ибо при большом количестве строк выводить данные из РС (срез последних) будет проблематичным из-за програмного расчета... Как оптимальнйе продемонстрировать это количество из РС

Автор: Petre 24.02.17, 9:11

Constantus @ Сегодня, 8:16 * ,
1. Зачем срез последних Оо?
2. Левое соединение со ссылками. Куда уж быстрее.

Автор: Flexy 24.02.17, 10:34

Цитата(Constantus @ 24.02.17, 8:16) *
но как тогда в форме списка вывести эти данные из регистра быстрым способом, ибо при большом количестве строк выводить данные из РС (срез последних) будет проблематичным из-за програмного расчета... Как оптимальнйе продемонстрировать это количество из РС

Первое, что пришло в голову:
Создайте глобальную переменную или реквизит в форме списка документов c типом ТЗ.
Создайте произвольную колонку в списке документов.
Перед открытием читайте из РС в ТЗ.
При выводе строки в форме списка искать ссылку на документ в ТЗ и получать Количество нажатий.

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua