Запись данных о несохраненных документах

Тема в разделе "1C и всё что с ней связано", создана пользователем Shilin-N, 27 сен 2007.

Статус темы:
Закрыта.
  1. Shilin-N

    Shilin-N Гость

    Добрый день.

    1С 7.7 Торговля и склад 934
    Для начала ситуация: Продавец договаривается с покупателем, создает новый документ (Реализация), заполняет необходимые поля, выводит на печать, закрывает документ и НЕ сохраняет, выручку кладет в карман (вместо кассы).

    Отключить пользователям полномочия на печать непроведенных документов,- отличный вариант. Так и будет сделано. НО сейчас вопрос состоит в том, чтобы поймать за руку нечестных продавцов и вообще узнать кто этим занимается.

    Я в 1С не просто несилен, а скорее чайник. Просто на предприятии встал вопрос ребром.

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


    Пожалуйста, помогите реализовать такую возможность.
    Сам сижу с книгами уже второй день напролет. Ну не понимаю я 1С.
    Для людей постоянно работающих с 1С это не так уж и сложно.
    У меня дальше
    "Процедура ПриЗакрытии()

    КонецПроцедуры" дело не пошло.
     
  2. b00tch

    b00tch Гость

    В процедуре Печать() после Таб.Показать(...) напиши Таб.Сохранить(ИмяФайла)...
    только ИмяФайла надо формировать каждый раз разное, чтоб не переписывались...
     
  3. Shilin-N

    Shilin-N Гость

    Ничего подобного не нашел в модуле документа Реализация

    попытался вот что сделать:
    ...
    ...
    // показать сформированную таблицу

    Если СразуНаПринтер = 0 Тогда
    ПечТабл.Опции(0, 0, 0, 0, "ДляРеализации", "ДляРеализации");

    Если глПолучитьПолномочие("РазрешитьРедактированиеТаблиц") = 0 Тогда
    ПечТабл.Защита(1);
    Иначе
    ПечТабл.Защита(0);
    КонецЕсли;
    ПечТабл.ТолькоПросмотр(1);
    ПечТабл.Показать(глНазваниеДокументаВжурнале(Контекст),"");

    Иначе
    ПечТабл.ПараметрыСтраницы(,,,,,,,,,1,,);
    ПечТабл.КоличествоЭкземпляров(КолЭкз);
    ПечТабл.Напечатать(0);
    ДОБАВИЛ: ПечТабл.Сохранить("C:\123\q1.txt");
    КонецЕсли;

    КонецПроцедуры // Печать()
    ....
    Ноль реакции ...

    И все же, задача отловить момент когда пользователь заполняет новый документ, печатает, и не сохраняет его.
     
  4. Alecs1969

    Alecs1969 Гость

    Если так ставить вопрос, то самое правильное решение будет - ведение логов.
    Для этого надо в процедуре ПриЗакрытии, прописать процедуру добавления всех данных документа, в конец текстового файла(например реализация.txt).
     
  5. Shilin-N

    Shilin-N Гость

    Если "плясать" от процедуры "ПриЗакрытии", то сталкиваюсь с такими проблемами:
    1. Каким образом узнать, что ответил пользователь в ответ на вопрос сохранять ли документ? (Да, Нет, Отмена)???
    2. Не нашел метода узнать, документ с которым сейчас
    -работает пользователь
    -или пытается напечатать
    -или пытается не сохранить
    новый (т.е. был создан, но еще не сохранялся) или открыт и исправляется...

    помогите, сам копаю, но тщетно.


    Ведение логов..... а размер лог-файла????
    Повторюсь, Необходимы данные лишь тех документов, которые были созданы, заполнены, напечатаны и не сохранены.
     
  6. Alecs1969

    Alecs1969 Гость

    Зачем все это? Скидываете в лог все подряд. Потом отсортируете легальные документы, и останется то что вы ищите.
     
  7. Shilin-N

    Shilin-N Гость

    прикиньте: 6 касс. работа практически без остановки, т.е. постоянно выписываются документы, продавец даже попу оторвать не может от стула.
    И что???? Это все сортировать? Не лучше ли записывать только полезную информацию?
     
  8. Alecs1969

    Alecs1969 Гость

    Кстати, можно вести лог распечатанных документов.

    А кто вас заставляет сортировать все в ручную?
    Напишите обработку по сравнению данных в документах и логах.
     
  9. Shilin-N

    Shilin-N Гость

    Тогда, вопрос:
    в таком логе будет информация помимо номера документа, даты его и прочего, информация о номенклатуре, ценам, суммам? Именно это и важно. Кто облапошил и на сколько.

    Если да, то можно сверять этот лог распечаток со списком всех документов (того же типа(реализация)) сохраненных и проведенных.
     
  10. Alecs1969

    Alecs1969 Гость

    Скидывайте в лог все данные которые вам могут понадобится.
    Для облегчения обработки используйте такую схему:

    Маркер начала документа
    данные шапки(те которые нужны, например автор док-та)
    номер
    автор
    и т.д.
    Маркер табличной части
    данные о товарах
    товар1 / цена / кол-во /
    товар2 / цена / кол-во /
    Маркер конеца документа
     
  11. Shilin-N

    Shilin-N Гость

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

    ну очень нужно....
    в синтакс-помошнике не могу найти методов для работы с текстовыми файлами (создать, пополнить, закрыть)
     
  12. Alecs1969

    Alecs1969 Гость

    Вот здесь есть неплохой справочный материал по версии 7.7
    http://love1c.kiev.ua/download/book1c.htm
     
  13. BVS

    BVS Гость

    Для: Shilin-N
    1С сам может вести логи, тебе требуется при печати документа создать лог с информацией о номере документе, сумме операции. Потом просматривая логи ты сможешь найти документы с одинаковыми номерами, сравнивая время создания документа с документом в базе данных (хотя логически правильно будет считать последний документ сохраненным) ты сможешь узнать какой документ "забыли" сохранить и на какую сумму (и какой оператор).
     
  14. Shilin-N

    Shilin-N Гость

    Спасибо всем за помошь. Потихонечку разбираюсь.
     
  15. kablack

    kablack Гость

    Как вариант сделать недоступной кассирам в форме документа кнопку "закрыть",
    а на кнопке "ОК" убрать возможноть выбора сохранить-не сохранять
    (у нас вот так: ДалиДенег(); Автор = Пользователь; #Записать() Провести? Закрыть) тогда у них после печати чека сразу сам сохраняется и спрашивает провеcти=-не провести.
    С месяц назад сделала - пока довольны (тут еще зависит от степени освещенности кассиров...если смеканут что еще можно закрыть эскейпом или просто крестиком..тада не сохранит.но и чек тогда не напечатают, хотя просто накладную смогут)
    Но я пока дошла только до этого и..работает:)
    а, да и еще. добавила в заполнение таблицы запрет удаления строки - у нас была проблема не только "несохранения доков", но еще просто "удаления части товара из накл с последующим сохранением"..разница - тоже на карман кассиру:)
     
  16. Pretorian

    Pretorian Гость

    ЗаписьЖурналаРегистрации поможет тебе, см. хелп. У меня так вобще гайки затянуты, пока не проведешь документ, ни какой печати.
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей