Выполнить функцию только если пользователь провел документ

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

Если глМожноЗаписатьДокумент(Контекст)=0 Тогда
СтатусВозврата(0);                        
ИначеЕсли глКонтрольДатыДокумента(Контекст, НачальнаяДатаДокумента)=1 Тогда
СтатусВозврата(0);      
Иначе
Если глПриЗаписиДокОснСФКонтр(Контекст, ВидСчетаФактуры, "ЗаписьКнигиПродаж", НачКонтрагент, НачДоговор, НачФирма, ОписаниеОш, НачСумма) = 0 Тогда
Предупреждение(ОписаниеОш, 60);
СтатусВозврата(0);
Иначе
Если глПриЗаписиДокОснСФВал(Контекст, ВидСчетаФактуры, "ЗаписьКнигиПродаж", НачВалюта, НачКурс, ОписаниеОш) = 0 Тогда
Предупреждение(ОписаниеОш, 60);
СтатусВозврата(0);
Иначе
НачВалюта = Валюта;
НачКурс = Курс;
НачКонтрагент = Контрагент;
НачДоговор = Договор;
НачФирма = Фирма;    
НачСумма = Сумма;
КонецЕсли;
КонецЕсли;
КонецЕсли;

Если КодОперации = глКО.ВозвратПодотчетныхСумм Тогда
   Контрагент   = """";
Договор       = """";

Счет   = """";
Субконто1   = """";
Субконто2   = """";
Субконто3   = """";

СчетНУ   = """";
СубконтоНУ1   = """";
СубконтоНУ2   = """";
СубконтоНУ3   = """";

ИначеЕсли КодОперации = глКО.Прочее Тогда
   Контрагент   = """";
Договор   = """";

ФизЛицо   = """";
АвансовыйОтчет = """";
Иначе
Счет       = """";
Субконто1   = """";
Субконто2   = """";
Субконто3   = """";

СчетНУ   = """";
СубконтоНУ1    = """";
СубконтоНУ2   = """";
СубконтоНУ3   = """";

ФизЛицо   = """";
АвансовыйОтчет = """";
КонецЕсли;    


  Конст = Константа.Биллинг.Наименование;
   Текст = СоздатьОбъект("Текст");
ТекстДок = СоздатьОбъект("Текст");
Список = СоздатьОбъект("СписокЗначений");
  /// Создание файла ПКО.txt
Список.ДобавитьЗначение(НомерДок);
Список.ДобавитьЗначение(ДатаДок);
Список.ДобавитьЗначение("Контрагент: "+ДокОснование.Контрагент);
   Кол=0; //Количество Наименований номенклатуры в документ Реализацие.
 Биллинг="Ложь";
      Пока(ДокОснование.ПолучитьСтроку() > 0) Цикл
      Сообщить(Конст);
       Сообщить(ДокОснование.Номенклатура.Наименование);
  Если ДокОснование.Номенклатура.Наименование = Конст Тогда
    Биллинг="Истина";
    Список.ДобавитьЗначение(ДокОснование.Номенклатура.Наименование);
  КонецЕсли;
Кол=Кол+1;
      КонецЦикла;
    Список.ДобавитьЗначение(ДокОснование.СуммаВзаиморасчетов);

      Если (Кол=1) и (Биллинг="Истина")  Тогда
    Текст.ДобавитьСтроку(Список.ВСтрокуСРазделителями());
  Если ФС.СуществуетФайл("C:\ПКО.txt")=1 Тогда  
  Сообщить("Фаил существует");
    ТекстДок.Открыть("C:\ПКО.txt");
ТекстДок.ДобавитьСтроку(Список.ВСтрокуСРазделителями());
            ТекстДок.Записать("C:\ПКО.txt");
      Иначе
Сообщить("Фаила не существует");
  Текст.Записать("C:\ПКО.txt");
  КонецЕсли;
  КонецЕсли;
Список.УдалитьВсе();// очищаем список      

/// Конец Создание файла ПКО.txt


КонецПроцедуры // ПриЗаписи()    


Как зделать чтобы файлик перезаписывался только если документ проводиться(тоесть сразу после проводки).
"
при нажатие на кнопки Провести и Ок...    Вылазиет окошко(которое просит указать в какой конец дня ввести), такчто нужно именно чтобы функция срабатывала при нажатие на кнопку Ок в этом окошке выбора времени... а не при нажатие на кнопки провести на главной Форме ПКО
Иван Александрович, а вы можете не так много писать? Да и не плохо бы указать конфигурацию и платформу, хотя догадываюсь, что речь идет о 7.7!
Да.. не указать конфигурацию в данном случае...
О чем люди думают, когда пишут вопрос?

Но если какая-нибудь 7.7, то в документе есть еще модуль документа с процедурой ОбработкаПроведения(). Попробуйте добавить  в нее.
Да, Иван Александрович, так много писать не стоило.
Я думаю Вашу "функцию" лучше запускать через процедуру ОбработкаПроведения() с предварительной проверкой проведен документ или нет.
1С 7.7  Торговля...  Документ Приходной кассовый ордер
ОбработкаПроведения() - такой процедуры нет в модуле ПКО (7.7)
Я так понимаю ее нужно написать самому...
Какое условие вставить в эту процедуру?
ОбработкаПроведения(<3нач>) - мне непоможет..
щас читал про нее.. нечего толком непонял..
и вообще немогу понять что вызывает эту процедуру..
она попросту несрабатывает у меня.
может быть это и очень "нубовский" вопрос, но всеже.. я немогу найти хорошей книги по 7.7
Где бы была удобная навигация по книге.
щас же листая к примеру
1С:Предприятие
Версия 7.7
Описание встроенного языка
Часть 1

Я немогу понять полную функциональность этой процедуры.
Понял что Диолог ввода времени вылазит даже при записывание документа без проведения, значит не то что надо.

Неужели некто несталкивался со столь простой(частой) задачей?

Всеголиш нужно чтобы Функция срабатывала после того как документ проведен.
задачу решил, спасибо за участие!


Решение:
в процедуру

        Процедура ПриЗакрытии()

поместил условие

Если Проведен()=1 Тогда

Все работает так как я хотел.
Извените за столь глуппый вопрос.
Знаете как называется вызов какого-нибудь диалога в обработке проведения документа при сдаче сертификационного экзамена?
Читают тему
(гостей: 1)

Быстрый переход