+7 499 990-10-21

Замечания к обработке обмена данными для 1С: 7.7 от 2 марта

Замечания к обработке обмена данными для 1С: 7.7 от 2 марта

Сообщение Бродяга_Джон » 14 мар 2012, 13:28

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


далее
Код: Выделить всё
   Пока ТаблВозвратов.ПолучитьСтроку()=1 Цикл
      ДокВозврат.НоваяСтрока();
      СпрНоменклатура=СоздатьОбъект("Справочник.Номенклатура");

надо переделать к виду
Код: Выделить всё
      СпрНоменклатура=СоздатьОбъект("Справочник.Номенклатура");
   Пока ТаблВозвратов.ПолучитьСтроку()=1 Цикл
      ДокВозврат.НоваяСтрока();


В Функция ЗагрузитьТовары(Объект, НомСекции, НомерККМ, КаталогОбмена, СписокТоваров)

Код: Выделить всё
   Пока СписокТоваров.ПолучитьСтроку() = 1 Цикл
      
      Если СписокТоваров.Код <> СтарКод Тогда
         
         СтарКод = СписокТоваров.Код;
         
         СписокТвр = СоздатьОбъект("Справочник.Номенклатура");
         СписокТвр.НайтиПоКоду(СписокТоваров.Код);

преобразовать к виду (зачем на каждый раз цикла выполнять создание объекта? )
Код: Выделить всё
         СписокТвр = СоздатьОбъект("Справочник.Номенклатура");
   Пока СписокТоваров.ПолучитьСтроку() = 1 Цикл
      
      Если СписокТоваров.Код <> СтарКод Тогда
         
         СтарКод = СписокТоваров.Код;
         
         СписокТвр.НайтиПоКоду(СписокТоваров.Код);


там же
Код: Выделить всё
         Иначе
         
            // записываем в файл строку(и) для ТОВАРА
            СпрЕдиниц = СоздатьОбъект("Справочник.Единицы");
            СпрЕдиниц.ИспользоватьВладельца(ТекТовар); 

к виду (из предыдущего)
Код: Выделить всё
         СписокТвр = СоздатьОбъект("Справочник.Номенклатура");
            СпрЕдиниц = СоздатьОбъект("Справочник.Единицы");
   Пока СписокТоваров.ПолучитьСтроку() = 1 Цикл
      
      Если СписокТоваров.Код <> СтарКод Тогда
         
         СтарКод = СписокТоваров.Код;
         
         СписокТвр.НайтиПоКоду(СписокТоваров.Код);


PS
вынос конструкции типа
СпрХХХХХХХХ=СоздатьОбъект("Справочник.ХХХХХХХХ");
за пределы цикла (конкретно до цикла, я обычно в начале процедуры прописываю подобные) ускоряет выполнение обработки.
проверте сами через отладчик
Бродяга_Джон
 
Постов: 1263
Зарегистрирован: 12 окт 2010, 22:07
Откуда: Россия, Омск

Re: Замечания к обработке обмена данными для 1С: 7.7 от 2 ма

Сообщение Alexander » 15 мар 2012, 19:06

Спасибо, поправили, выложили.
Alexander
 
Постов: 4992
Зарегистрирован: 16 авг 2009, 23:34
Откуда: Техподдержка ГК ДЭНСИ


Вернуться в Техподдержка

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


cron

Кто сейчас на конференции

Сейчас посетителей на конференции: 3, из них зарегистрированных: 0, скрытых: 0 и гостей: 3 (основано на активности пользователей за последние 5 минут)
Больше всего посетителей (180) здесь было 29 апр 2024, 13:15

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3