Имя: Пароль:
1C
 
Закрыть лист Excel от изменения полностью
0 Стрелок
 
07.05.09
22:36
ВОт никогда не задавался вопросом. А теперь пришлось.

клиент. передаёт накладные в екселя на удалённый офис мылом. там их печатают и отгружают с местного склада товар. задача - сделать так чтобы небыло возможности править файл. никаким образом. в идеале - чтобы даже копирование не работало.

вопрос - как это сделать из 1С (блокировку листа)

может кто знает?
1 ДенисЧ
 
07.05.09
22:38
PDF тебя спасёт
2 ДенисЧ
 
07.05.09
22:38
А то и просто картинка.
3 Стрелок
 
07.05.09
22:38
(1) спасёт и просто картинка... вопрос - как это сделать из 1С то?
4 ДенисЧ
 
07.05.09
22:40
(3) акробат дистиллер или мсофис документ имагинг
5 Привратник
 
07.05.09
22:43
Ну вообще и картинку можно править. Смотря какой профит ;)
6 Стрелок
 
07.05.09
22:49
(4) это вс
7 Стрелок
 
07.05.09
22:50
(4) это всё требует вмешательства оператора. объём же документов очень большой. и часть из них - на этот удалённыйофис. тратить время на сортировку и обработку никто не будет. надо так чтобы 1С сама отбирала нужные документы, обрабатывала как то и отправляла мылом куда надо
8 ДенисЧ
 
07.05.09
22:55
(7) дистиллер и ему подобные складывают результат в определённый каталог. Оттуда уже можно абсолютно программно отправлять мылом файлы.
Как задавать имя принтера в 1с, мне тебя учить надо?
9 Стрелок
 
07.05.09
23:07
(8) дистилер умеет работать из командной строки?
10 Стрелок
 
07.05.09
23:08
или он эмулирует принтер и формирует картинку в определённом каталоге?
11 ДенисЧ
 
07.05.09
23:09
Он делает виртпринтер
12 Стрелок
 
07.05.09
23:24
(11) идея понятна. буду думать

вообще изначально додумался вентафакс прикрутить
13 Ужас бухгалтера
 
07.05.09
23:28
(0) http://yoksel.net.ru/Ob%27ektyVstroennogoJazyka/ListKonverteraExcel
там смотреть "ЗащититьСодержимое" и "ЗащититьОбъекты".

Также вот, если требуется картинка: http://yoksel.net.ru/Ob%27ektyVstroennogoJazyka/Jjoksel%27GraficheskijjKonverter
14 Стрелок
 
01.06.09
03:42
Ну что други... есть решение. выкладываю - может кому пригодится...

итак, напомню задачу

надо из 1С формировать накладные в виде Excel файла так, чтобы юзер не мог этот файл изменить без ввода пароля.

алгоритм прост как 2х2

1. в накладной пишем процедуру один в один как процедура печати только в конце вместо

Таблица.Показать()

ставим

Таблица.Записать(КаталогСохранения+ИмяФайла,1);

2. подключаемся к ексель по ольке и ставим защиту листа

Если ЗапущенExcel=1 Тогда
           ВходExcel.ActiveWorkbook.Close();
       КонецЕсли;
       Если ЗапущенExcel= 0 Тогда
           Попытка
               ВходExcel=СоздатьОбъект("Excel.Application");
               ЗапущенExcel=1;
           Исключение      
               Сообщить(ОписаниеОшибки(),"!");
               Возврат;
           КонецПопытки;
       КонецЕсли;  
       ТекФайл=КаталогСохранения+ИмяФайла+".xls";
       Если ЗапущенExcel=1 Тогда
           Попытка
               ВходExcel.Application.Workbooks.Open(ТекФайл);  // открываем файл
               ВходExcel.Sheets(1).Protect(СокрЛП(ПарольЛист)); // ставим пароль
               ВходExcel.DisplayAlerts=0; // блокируем окошко по поводу старого формата екселя
               ВходExcel.Save(); // записываем  
               ВходExcel.DisplayAlerts=1; // открываем предупреждения екселя
               ВходExcel.Quit(); // закрываем ексель
           Исключение
               ВходExcel.Quit();
                 Предупреждение("Не удалось открыть файл накладной "+ОтобранныеНакладные.НомерДок);
                 Продолжить;
           КонецПопытки;
       КонецЕсли;

теперь для снятия защиты листа надо ввести пароль.

но есть момент - метод PROTECT НЕ блокирует Правка-Копировать

т.е. можно скопировать весь лист и вставить его в чистую книгу. обходится просто как два пальца - на макет печатной формы предназначенной для сохранения в файл следует поместить какой нибудь графический объект. Лечше всего картинку, которую вы сами нарисовали. Дело в том что метод Protect блокирует доступ к графическим объектам ПОЛНОСТЬ. т.е. их нельзя скопировать или посмотреть свойства до снятия защиты. А это значит что если пытливый юзер всётаки скопирует содержимое листа в пустую книгу, то он не сможет скопировать графические объекты. а значит не сможет распечатать две одинаковых накладных.

остаёться мелочь - контроль наличия на распечатке графического объекта - картинки нужного размера и вида.

буду рад если кому то это поможет
15 у лю 427
 
01.06.09
05:51
распароливается и правится файл экселя - на ура.
В инете куча утилит для этого есть.
Надо чтото другое использовать.

у нас реализован след метод.
На содержимое РН считается контрольная сумма, все выгружается в текстовый файл, файл шифруется и посылается почтой.

На удаленном складе спец прога берет шифрованный файл и печатает с распечаткой
16 у лю 427
 
01.06.09
06:00
пардон-с...

На удаленном складе спец прога берет шифрованный файл и печатает с распечаткой контр суммы в виде штрих кода (у кладовщика все равно должен быть бум вариант с подписью клиента о получении). Печать напрямую на принтер

После печати кладовщик выдает товар, сканирую РН. Если она подделана, КС не совпадет с содержимым и программа предупредит об этом. Если все нормально - будет распечатан второй экземпляр РН для клиента.

За два года уволена одна кладовщица, которая выдала товар без печати второго экземпляра - за что и поплатилась.

На экземпляре клиента штрих код не выводится.
Выдача идет по экземпляру кладовщика.

Есть также простовато-хитроватый регламент, который обеспечивает доп защиту от подделки.