7.7 Доработка Обмена

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

  1. TopicStarter Overlay
    Peroman
    Offline

    Peroman Опытный в 1С

    Регистрация:
    26 май 2009
    Сообщения:
    879
    Симпатии:
    13
    Баллы:
    29
    Нашел внешнюю обработку,для переноса документов. Посмотреть вложение 2292 .Что нужно в модуле написать чтобы он при проверке номеров докуметов невыдавал ошибку а пропускл и не записывал документ с
    таким номером и еще чтобы при загрузке он делал документ проведенным?

    Вложения:

  2. sergey
    Offline

    sergey Курильщик

    Регистрация:
    13 апр 2006
    Сообщения:
    365
    Симпатии:
    0
    Баллы:
    26
    Перед созданием документа при загрузке воспользоваться:
    Либо использовать при записи конструкцию
    Код:
    Попытка
    
    Исключение
    
    КонецПопытки;
    
    
    А после предопределенной процедуры Записать() воспользоваться предопределенной процедурой Провести()
  3. TopicStarter Overlay
    Peroman
    Offline

    Peroman Опытный в 1С

    Регистрация:
    26 май 2009
    Сообщения:
    879
    Симпатии:
    13
    Баллы:
    29
    Что-то я ничего не понял.Во первых где писать"НайтиПоНомеру(<Номер>,<Дата>,<ИдентВида>)"
    А во вторых ну найдет он мне и ,что дальше?мне же надо чтобы,он документы с таким номером не загружал,а просто исключал,а при попытке я вообще понимаю так что он просто угнорирует ошибку и запишет документ сверху или того хуже продублирует.
  4. TopicStarter Overlay
    Peroman
    Offline

    Peroman Опытный в 1С

    Регистрация:
    26 май 2009
    Сообщения:
    879
    Симпатии:
    13
    Баллы:
    29
    может при выгрузке ему задать время,только как сделать не знаю.
    Насколько я понимаю 1С присваивает номера соглано времени."Перем НачальнаяДатаДокумента; // для механизма контроля уникальности номеров"
  5. sergey
    Offline

    sergey Курильщик

    Регистрация:
    13 апр 2006
    Сообщения:
    365
    Симпатии:
    0
    Баллы:
    26
    Это цитата из синтакс-помощника в конфигураторе. В нем и искать. Или вы хотите сразу готовое решение под Вас на тарелочке с голубой каёмочкой?

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

    sergey Курильщик

    Регистрация:
    13 апр 2006
    Сообщения:
    365
    Симпатии:
    0
    Баллы:
    26
    Вариант 2 на примере ПоступленияТМЦ:
    Код:
    Док=СоздатьОбъект("Документ.ПоступлениеТМЦ");
    Док.Новый();   
    // и заполняем реквизиты   
    Попытка 
    Док.Записать();
    Исключение
    Сообщить(ОписаниеОшибки());  
    КонецПопытки;
    
    
    При проведении аналогично:
    Код:
    Попытка 
    Док.Провести();
    Исключение
    Сообщить(ОписаниеОшибки());  
    КонецПопытки;
    
    
    А вообще советую почитать описание встроенного языка 1С, там достаточно разжевано все то, что примером приведено.

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