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

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем AlexxxMksv, 4 июл 2011.

  1. TopicStarter Overlay
    AlexxxMksv
    Offline

    AlexxxMksv

    Регистрация:
    4 июл 2011
    Сообщения:
    29
    Симпатии:
    0
    Баллы:
    1
    1с Предприятие 7.7
    Торговля - Склад редакция 9.2
    Оптово-розничная конфигурация 7.70.937

    Заявка на склад не снимается с проводки, если Дата отмены резерва больше чем системное время комьютера.
    В коде документа не увидел проверку, как она выглядит, или это надо лезть в настройки 1С???
    Помогите новичку.

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

    Код:
    Процедура ПриОткрытии() 
    Перем тНДок, тДДок, тКДок, тАДок, тДокЗП, тДатаОтчета;
    Состояние("проверка резерва...");
    тРРезервы = СоздатьОбъект("Регистр.РезервыТМЦ");
    оДЗП = СоздатьОбъект("Документ.ЗаявкаПокупателя"); 
    оДР = СоздатьОбъект("Документ");   
    оТекст = СоздатьОбъект("Текст");
    оТО = СоздатьОбъект("Таблица");   
    
    тДатаОтчета = РабочаяДата();
    оТО.ВывестиСекцию("шапка");  
    оТекст.ДобавитьСтроку(тДатаОтчета);
    еСтьХотьОднаОтмена = 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);
    оТО.Показать("отмена резерва");   
    КонецЕсли;
    КонецЕсли;       
    Форма.Закрыть();
    КонецПроцедуры
    
    [warn="!!! ВНИМАНИЕ !!!"]Пользуемся тегами[/warn]
  2. Vlad
    Offline

    Vlad Модераторы Команда форума Модератор

    Регистрация:
    16 авг 2006
    Сообщения:
    3.517
    Симпатии:
    19
    Баллы:
    29
    Ну, так это явный самопис. Ты просто пройдись отладчиком - и найдешь
  3. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Код:
    оТекст.Открыть(КаталогИБ()+"\ctrlZ\"+СтрЗаменить(РабочаяДата(),".","_")+"_z.txt");  
    
    
    думаю вот в чем причина засора....
    Хранить резервы во внешнем файле,а не в регистре - такого извращения еще не встречал
  4. TopicStarter Overlay
    AlexxxMksv
    Offline

    AlexxxMksv

    Регистрация:
    4 июл 2011
    Сообщения:
    29
    Симпатии:
    0
    Баллы:
    1
    Пожалуйста приведите вариант как должна выглядить строка для хранения в регистре.
  5. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Приблизительно так:

    Код:
    Процедура ОбработкаПроведения(ВидыДвижений)
    
    ВрРег= Регистр.Рецепт;
    ВрРег.Контрагент 	= Пациент;
    ВрРег.Договор	 	= Договор;
    ВрРег.СуммаСтрах	= СтраховаяВсего; 
    ВрРег.СуммаВсего	= Всего; 
    ВрРег.ДвижениеПриходВыполнить();
    
    КонецПроцедуры //ОбработкаПроведения()
    
    
    Пример приведен из совершенно "левой" конфы. Тупым копированием не занимаемся...

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