Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
25 ноя 2024, 15:55

Дата отмены резерва в заявке на склад

Автор AlexxxMKsv, 22 июн 2011, 10:19

0 Пользователей и 1 гость просматривают эту тему.

AlexxxMKsv

Цитата: prog1c7.7 от 01 июл 2011, 23:07
проводка - то бишь значения в регистре пляшут от точки актуальности, а она как правило на рабочую дату.

Спасибо за отклик, только извините мне - новичку не понятно.
Разъесните пожалуйста.
и самое главное как это лечить?


Я нашел в конфигурации
Форма - Обработка.АвтоСнятиеРезерва(АвтоСнятиеРезерва(Ом)),
где-то я подозриваю это должно влиять на мою проблему :-) .

Процедура ПриОткрытии()
   Перем тНДок, тДДок, тКДок, тАДок, тДокЗП, тДатаОтчета;
   Состояние("проверка резерва...");
   тРРезервы = СоздатьОбъект("Регистр.РезервыТМЦ");
   оДЗП = СоздатьОбъект("Документ.ЗаявкаПокупателя");
   оДР = СоздатьОбъект("Документ");   
   оТекст = СоздатьОбъект("Текст");
   оТО = СоздатьОбъект("Таблица");   
   
   тДатаОтчета = РабочаяДата();
   оТО.ВывестиСекцию("шапка"); 
   оТекст.ДобавитьСтроку(тДатаОтчета);
   еСтьХотьОднаОтмена = 0;
   еСтьРеализация = 0;
   тРРезервы.ВыбратьИтоги();
   Пока тРРезервы.ПолучитьИтог() = 1 Цикл                 
      Состояние("обработка "+тРРезервы.ЗаявкаПокупателя.НомерДок+" "+тРРезервы.ЗаявкаПокупателя.ДатаДок);   
      Если ПустоеЗначение(тРРезервы.ЗаявкаПокупателя.дАтаСнятияРезерва) = 1 Тогда 
         Сообщить("ошибка в регистре резервов "+тРРезервы.ЗаявкаПокупателя);
         Продолжить;
      КонецЕсли;         
      
      Если тРРезервы.ЗаявкаПокупателя.дАтаСнятияРезерва > РабочаяДата() Тогда
         Продолжить;
      КонецЕсли;
      еСтьРеализация = 0;
      
      оДЗП.НайтиДокумент(тРРезервы.ЗаявкаПокупателя);
      оДР.ВыбратьПодчиненныеДокументы(оДЗП.ДатаДок, РабочаяДата(),оДЗП.ТекущийДокумент());
      Пока оДР.ПолучитьДокумент() = 1 Цикл
         Если оДР.Вид() = "Реализация" Тогда
            Если оДР.Проведен() = 1 Тогда
               Если оДР.Контрагент = оДЗП.Контрагент  Тогда
                  еСтьРеализация = 1;
                  Прервать;      
               КонецЕсли;
            КонецЕсли;       
         КонецЕсли;               
      КонецЦикла;
      
      Если еСтьРеализация = 1 Тогда
         Продолжить;
      КонецЕсли;      
      
      
      оДЗП.СделатьНеПроведенным();
      тНДок = оДЗП.НомерДок;
      тДДок = оДЗП.ДатаДок;
      тКДок = оДЗП.Контрагент;
      тАДок = оДЗП.Автор;                         
      тДокЗП = оДЗП.ТекущийДокумент();
      
      
      оТекст.ДобавитьСтроку(оДЗП.НомерДок+";"+оДЗП.ДатаДок+";"+оДЗП.Контрагент+";"+оДЗП.Автор);
      оТО.ВывестиСекцию("строка");
      еСтьХотьОднаОтмена = 1;
      //оДЗП.Записать();         
   КонецЦикла;   
   Если ФС.СуществуетФайл(КаталогИБ()+"\ctrlZ") = 0 Тогда
      фс.СоздатьКаталог(КаталогИБ()+"\ctrlZ");
   КонецЕсли;         
   
   оТО.Опции(0,0,4);
   Если еСтьХотьОднаОтмена = 1 Тогда
      оТО.ТолькоПросмотр(1);
      оТО.Показать("отмена резерва");                                                                                                                                   
      //Закомментировано Инсталлятором МОД:оТекст.Записать(КаталогИБ()+"\ctrlZ\"+СтрЗаменить(РабочаяДата(),".","_")+"_z.txt");
//Начало текста, вставленного Инсталлятором МОД
      ОбъектЗаписать(оТекст, КаталогИБ()+"\ctrlZ\"+СтрЗаменить(РабочаяДата(),".","_")+"_z.txt");
//Конец текста, вставленного Инсталлятором МОД
   
   Иначе   
      Если ФС.СуществуетФайл(КаталогИБ()+"\ctrlZ\"+СтрЗаменить(РабочаяДата(),".","_")+"_z.txt") = 1 Тогда
         оТекст.Очистить();
         оТекст.Открыть(КаталогИБ()+"\ctrlZ\"+СтрЗаменить(РабочаяДата(),".","_")+"_z.txt");             
         кОлВоСтрок = оТекст.КоличествоСтрок();     
         тСтрока = "";                             
            тДатаОтчета = оТекст.ПолучитьСтроку(1);
         тДатаОтчета = Дата(Лев(тДатаОтчета, 4), Сред(тДатаОтчета, 5,2), прав(тДатаОтчета,2));
         
         оТО.Очистить();
         оТО.ВывестиСекцию("шапка");
         Для сСтрок = 2 По кОлВоСтрок Цикл
            тСтрока  = оТекст.ПолучитьСтроку(сСтрок);
            тСтрока = СтрЗаменить(тСтрока,";",РазделительСтрок);
            тНДок = СтрПолучитьСтроку(тСтрока,1);
            тДДок = СтрПолучитьСтроку(тСтрока,2);
            тКДок = СтрПолучитьСтроку(тСтрока,3);
            тАДок = СтрПолучитьСтроку(тСтрока,4);
            Если оДЗП.НайтиПоНомеру(тНДок, тДДок) = 1 Тогда
               тДокЗП = оДЗП.ТекущийДокумент();
            КонецЕсли;                                               
            оТО.ВывестиСекцию("строка");
         КонецЦикла;   
         оТО.ТолькоПросмотр(1);
         оТО.Показать("отмена резерва");   
      КонецЕсли;
   КонецЕсли;       
   Форма.Закрыть();
КонецПроцедуры   




Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск