Имя: Пароль:
1C
 
Контроль печати(распечатывания)документов
0 Zoeh
 
29.07.10
07:28
Проблема следующая:
ТиС 9.4
Первоначальная задача осуществить контроль распечатанных(выпущенных на печать) накладных.
Реализовал следующим образом: При записи документа Реализация создается справочник, на который в самом документе есть ссылка.
Кода выходим на печатную форму документа этот справочник быстренько ищется и пишется в него реквизит Распечатан, справочник записывается, в общем журнале отображается красивенький значок с принтером.
Все бы ничего дак вот беда:
Иногда запись справочника попадает в транзакцию, и поэтому он попросту не записывается!
И происходят оочень нехорошие последствия.
1 Это_mike
 
29.07.10
07:30
хвастаешься?
2 chelentano
 
29.07.10
07:31
(0) может проще в документе признак ставить?
3 chelentano
 
29.07.10
07:31
(0) а вообще, нахрена это всё?
4 Это_mike
 
29.07.10
07:32
(2) не проще. Это еще и записывать надо :-)
5 Ненавижу 1С
 
гуру
29.07.10
07:33
а есть еще другая проблема, ты отправил на печать, а принтер взял и "зажевал"
так что все это бред полный
6 Это_mike
 
29.07.10
07:33
(3) видимо, чтоб два раза товар не вывезли :-))
Классика жанра. Т1С, 2002-2003 год...
7 Это_mike
 
29.07.10
07:34
(5) Зачем спешишь ? :-)
8 Rie
 
29.07.10
07:39
А с чего бы записи справочника в транзакцию попадать?
9 chelentano
 
29.07.10
07:40
(4) а в справочник не надо записывать? :)
(8) другие, видимо, тоже печатают
10 Rie
 
29.07.10
07:49
(9) Печать внутри транзакции? Это круто...
11 Это_mike
 
29.07.10
07:55
(9) Запись элемента справочник менее критична нежели запись документа.
(10) нет, просто конфликт при доступе к справочнику
12 chelentano
 
29.07.10
07:55
(10) ты о чём? какая "Печать внутри транзакции"? Транзакция при записи элемента происходит
13 chelentano
 
29.07.10
07:57
(11) "Запись элемента справочник менее критична нежели запись документа" - да, наверное, соглашусь. "извините, погорячился" (с)
14 Rie
 
29.07.10
08:04
Я всё-таки не пойму - зачем тут справочник?
Если уж на то пошло - чем плох реквизит документа? Совместить печать с записью.
15 Zoeh
 
29.07.10
08:05
(2) Это документ каждый раз писать надо, еще хуже моего!!!
16 Rie
 
29.07.10
08:06
(15) Не хуже. Два пользователя одновременно обломятся интерактивно документ записывать.
17 Zoeh
 
29.07.10
08:06
(5) Это не мои проблемы !
У меня повторные накладные с крупными словами КОПИЯ выходят
18 Zoeh
 
29.07.10
08:07
(3) Контроль случайного вывоза по 2 накладным!
19 1Сергей
 
29.07.10
08:07
это фигня. Зажеваная бумага и прочие казусы ставят крест на таком методе. У меня очень мелким шрифтом печатается на накладной дата, время, пользователь. Если всплывут две одинаковые накладные, то там сразу видно кого карать анально
20 0xFFFFFF
 
29.07.10
08:07
(0) Нужно реализации создавать обработкой на основании заказов, проводить и выпускать на печать (пачками). Не нужен тогда никакой контроль - что распечатали, что забыли... Реализации печатаются вместе с их созданием, проведением и именно в то время, когда эту реализацию необходимо создавать, а не "заранее", чтобы Марьиванне пораньше домой уйти.
21 Zoeh
 
29.07.10
08:08
(8) Ну с чего не с чего, а иногда справочник не прописывается!
Юзеры конкретно поймали случай на транзакции.
22 Это_mike
 
29.07.10
08:09
(16) Ты нетрезв?
в общем-то, лочится и при неинтерактивной записи...
23 Zoeh
 
29.07.10
08:10
(20) Увы структура работы не пзволит такого сделать, есть такие вещи как самовывозы, оффициалы, доставки в день, и прочая херня.
24 Zoeh
 
29.07.10
08:11
(20) + увеличение документооборота х2
25 0xFFFFFF
 
29.07.10
08:12
(23) "не верю" (С)
самовывозы и доставки в день то как влияют?
(24) Почему увеличение?
26 Zoeh
 
29.07.10
08:18
Самовывоз, накладная уже уехала.
27 0xFFFFFF
 
29.07.10
08:20
(26) ну так если ее сделали той же обработкой в момент загрузки ТС, понятно что уехала. Не понял, в чем проблема?
28 Это_mike
 
29.07.10
08:21
(20) смею напомнить: заявка- это _заявка_ :-))
29 0xFFFFFF
 
29.07.10
08:22
(28) Я помню. А что это меняет?
30 Rie
 
29.07.10
08:24
(22) Задача не в том, чтобы записать элемент справочника, а в том, чтобы выставить некий флаг, что документ распечатан.
Почему бы не воспрользоваться тем, что на форму документа на изменение могут открыть не более одного пользователя? Кнопку печати - неактивной при ТолькоПросмотр(1), в процедуре Печати - установить флаг и Записать().
При желании ещё и поиграться с Блокировка().
31 Rie
 
29.07.10
08:25
+(30) То есть "при ТолькоПросмотр()=1".
32 Это_mike
 
29.07.10
08:26
(29) То, что запрошенное в заявке вполне может отличаться от наличествующего в реализации. Например, по причине весового товара или брака...
33 0xFFFFFF
 
29.07.10
08:26
Вообще представил бедных операторов. 500 заявок к примеру. Нужно каждый
найти в журнале
нажать ввести на основании
нажать ок
найти в журнале потом реализацию
открыть ее
нажать печать
выбрать форму
нажать файл-печать
выбрать количество экземпляров

4500 действий. только и сидит что мышой тычет.
Вместо того, чтобы выбрирать группами заказы и раз 10-20 за день нажать "создать реализации"....
34 azernot
 
29.07.10
08:28
Сначала записывать признак "Распечатан" в справочник, в случае успеха - печатать. Даже если будет конфликт блокировок, пользователь тупо будет пробовать ещё раз.
35 0xFFFFFF
 
29.07.10
08:28
(32) Имеется ввиду "товара не оказалось на складе"?
Если это ситуация - один раз на 100, 200,... 1000 заказов. Можно и перепечатать знаете ли.
А если на каждый второй документ, то это уже сами знаете как называется.
36 0xFFFFFF
 
29.07.10
08:29
+(35) да и потом, как это брак может повлиять... Заказ собирают по комплектовочным листам. По вычеркам корректируют ПЕРЕД формированием реализаций... Опять же не вижу проблемы.
37 0xFFFFFF
 
29.07.10
08:30
Или у вас комплектовочные листы печатаются из реализаций? ;)
38 1Сергей
 
29.07.10
08:30
(30)+1 Кстати, да. Распечатывать надо только записанный (проведенный) документ. Значит реквизита достаточно
39 Это_mike
 
29.07.10
08:33
(33) поиск заявки - по штрихкоду. Если статус заявки - "заявка собрана" (т.е. прошла через склад), и реализации еще нет, и пользователь с ролью "оператор" - на основании заявки создается реализация. После внесения всех изменеий (количественных, по составу, дат и КСР товара) - печать комплекта сопроводительных документов (в зависимости от группы клиентов - от простого реестра сертификатов до комплекта сертификатов, и качественных удостоверений на каждую партию). Ну и установка статуса "подготовлено к вывозу"...
40 0xFFFFFF
 
29.07.10
08:35
(39) Да ради бога. При чем тут (0)? Зачем эти заморочки с признаками печати, колоночками в журнале и проч.?
41 Это_mike
 
29.07.10
08:37
(35) я "имею ввиду" весовой товар, например. Или товар, не проходящий под клиента по КСР. Или брак (выявляемый в момент отгрузки). Или, увы,  пересорт.
"Вычеркивать" в заявке - глупость. Заявка - это то,что хотел клиент. заявка к сборке - это то, что мы теоретически можем ему отпустить (т.е. числится по учету)
42 Это_mike
 
29.07.10
08:39
(40) "ты первый начал" :-) Предложил частное решение...
43 Zoeh
 
29.07.10
08:43
(34) СУПЕР!
44 1Сергей
 
29.07.10
08:46
(43) а у тебя не так чтоли было?
45 Это_mike
 
29.07.10
09:02
(30) у меня, например, все "завершенные" документы (т.е. те,к оторые вернулись от клиента с подписью, с внесенными при необходимости исправлениями) - открываются только на просмотр.
Да и справшивать у оператора - "сохранить изменения", если опреаторизменений не вносил - "не комильфо"
46 Zoeh
 
29.07.10
09:17
(44) нет у меня печ форма открывалась в любом случае!
47 Zoeh
 
29.07.10
09:18
А еще идея была, но я не в силах ее реализовать:
Вобщем при открытии печатной формы вызывать нестандартный диалог с выбором принтера. а саму печ форму не показывать.
48 Rie
 
29.07.10
09:19
(45) Печатать ещё раз "завершённый документ" - это может быть как раз то, чего желательно избежать? Либо при необходимости сделать условие чуть посложнее.

А при чём тут "Сохранить изменения" - я не понял. Если оператор изменений не вносил - откуда вопросу-то взяться?
49 Rie
 
29.07.10
09:20
+(48) Или я не о том? (У меня ощущение, что мы говорим о чём-то совсем разном).
50 Rie
 
29.07.10
09:20
(47) Напечатать() - и форма не будет показываться.
51 Zoeh
 
29.07.10
09:21
(50) а принтер выбрать?
52 Это_mike
 
29.07.10
09:23
(48) Если печатается документ - по твоему методу устанавливается флаг в документе. Это как бы слегка изменение документа...
(51) а что мешает?
53 dk
 
29.07.10
09:26
(51) сходи в поиск - там есть получение списка принтеров
54 Rie
 
29.07.10
09:34
(52)
Распечатан = 1;
Записать();

никаких вопросов не повлечёт.
55 Это_mike
 
29.07.10
09:39
(54) а если еще и исправлен? :-))
56 Rie
 
29.07.10
09:47
(55) Ты уж определись - "Да и справшивать у оператора - "сохранить изменения", если опреаторизменений не вносил" или "а если еще и исправлен?" :-)
57 Это_mike
 
29.07.10
09:50
(56) Так ты записываешь без вопросов всегда - независимо от того, были ли ынесены изменеия оператором или нет. Это плохо.
58 Tatitutu
 
29.07.10
09:52
(0) Не пробовал?
ЗаписьЖурналаРегистрации(<?>,,,,);
ЗаписьЖурналаРегистрации(<Коммент>,<ТипСобытия>,<Событие>,<Объект>,<Категория>)
Назначение:
Выводит строку текста в системный журнал регистрации.
Параметры:
<Коммент> - строковое выражение, комментарий к событию. Если этот параметр - единственный переданный при вызове метода, то тогда в журнал записывается стандартное дополнительное событие с указанным комментарием.
<ТипСобытия> - необязательный параметр. Строковое выражение -  тип события. По умолчанию или при пустой строке ''Дополнительные события''.
<Событие> - необязательный параметр. Строковое выражение -  событие. По умолчанию ''Дополнительное событие''.
<Объект> - необязательный параметр. Объект события, по умолчанию отсутствует. Для переданных в функцию объектов типа Документ/ Справочник/ Счет представление объекта будет записано автоматически (это не зависит от типа события и самого события).
<Категория> - необязательный параметр. Число - категория события: 1 - администрирование; 2 - изменение данных; 3 - информация; 4 - предупреждение; 5 - ошибка. Значение по умолчанию 3.
59 Это_mike
 
29.07.10
09:55
(58) И парсить ЖР, чтоб напечатать на документе "копия"? :-)
60 Rie
 
29.07.10
09:57
(57) А Модицифированность() проверить - разве кто-то запрещает?
(Я как бы предполагаю, что при вокруг печати/записи некоторые танцы уже протанцованы).
61 PuhUfa
 
29.07.10
09:58
(59) А зачем на легкие пути? -)) Целый справочник вон автор придумал -)
62 Это_mike
 
29.07.10
09:59
(60) Да не запрещает. просто твои советы таким образом из "тривиальных" переходят в плоскость "тут доделать, там дописать - при улсовии, что это и это уже сделано".
Плюс еще ПриЗаписиПерепроводить может создать некоторые проблемы. И еще и еще...
63 Это_mike
 
29.07.10
10:00
(61) по идее, это регистр сведений. Ввиду отсутствия такового в 7.7 автор сделал на справочнике
64 aka AMIGO
 
29.07.10
10:01
имхо - реквизит в доке, и после печати - Записать();.. что голову ломать.. и запись незаметно пройдет, и контроль для повторной печати очевиден..
65 Ork
 
29.07.10
10:01
Фигня вопрос. Реквизита документа достаточно. Перед печатью проверить Проведен() и  Модифицированность(), в транзакции отправить на печать, выставить признак и записать. Все.
66 SnarkHunter
 
29.07.10
10:02
Дятл — кошерный еврейский птах. Упорен и трудолюбив настолько, что способен продолбить бетонный столб и череп боклана.
http://lurkmore.ru/Дятел

Дятел — птица. Качество дятла определяется тем, как он долбит. Хороший дятел способен задолбать небольшого слона.
http://absurdopedia.wikia.com/wiki/Дятел
67 Это_mike
 
29.07.10
10:03
(64) незаметность записи в нагруженных базах сомнительна. в УРБД это даст лишнюю нагрузку.
68 Rie
 
29.07.10
10:04
(62) Все эти "тут доделать, там дописать" - порождаются не флажком печати, а элементарным требованием: распечатанный документ должен соответствовать записанному. И пишутся один раз в одном месте. А совет сводится к тому, чтобы добавить в это же самое место ровно один оператор - установку флажка.
69 Это_mike
 
29.07.10
10:05
(68) одной установкой флажка нормально не обойдешься.
(66) это к OFF: Очередной отжиг минздрава - на этот раз о наркотиках на рабочем месте. Что же делать?
70 Skom
 
29.07.10
10:17
(23) поставьте на охрану компьютер. им интерфейс простецкий и список документов

с пометкой ОТГРУЕЖ/НЕОТГРУЖЕН

как охранник проверил накладну. в прогармме нажал одну единственную кнопку ОТГРУЖЕНО и все. док пометился что отгружен. больше с ним ничего делать не надо
71 Это_mike
 
29.07.10
10:27
(70) охране нефиг кнопки нажимать. Сканер ШК, и все. Этим же достигается защита от двойного вывоза, от невозврата документов, от вывоза товара на незапланированную дату, и т.п.
72 Skom
 
29.07.10
10:31
(71) имеешь в виду охрана сканером?
точно.
мы как раз собирались охранников этому делу обучить.
73 Это_mike
 
29.07.10
10:34
(72) ага. У мню эта система таки предотвратила кражу...
74 Skom
 
29.07.10
10:36
(73) а как поступаете с частичными отгрузками
75 Это_mike
 
29.07.10
10:38
(74)Объемов "больше машины" у нас нет.
76 Skom
 
29.07.10
10:42
(75) хотел позаимствовать у вас идею реализации
но придется додумывать самим.

надо разобраться в генерации ШК
потому как у нас много баз 1С на территории одной базы. и поэтому не сильно хочется много баз охране открывать
77 Это_mike
 
29.07.10
10:54
(76)так стучись в аську.
зы. я ж тебе вроде даже рассказывал...
78 Skom
 
29.07.10
10:55
(77) неа вроде мы с тобой не общались в аське.
счас постучусь
79 Skom
 
29.07.10
10:56
э-э-э-э-э
давай лучше ты ко мне
у тебя в профиле нет номера