Новости для бухгалтера, бухучет, налогообложение, отчетность, ФСБУ, прослеживаемость и маркировка, 1С:Бухгалтерия

Вход или Регистрация

Показывать по 10 20 40 сообщений
Новая тема Ответить
Письмо в техподдержку 1С
[Прочее]

Медленная переброска номенклатуры.

2L8
читатель
офлайн
Дата регистрации: 17.07.2003
Сообщений: 8
Пост №1
 
17.07.2003 21:36

"Уважаемый ALL!<br><br>Вознокла проблема, перебраски номенклатуры из БЭСТ-ПРО в 1С Педприятие (Торговля +Склад версия 9.2). Написал обработку по созданию новой карточки в справочнике номенклатура. Процесс переброски 34000 записе занял 1ч. 45 мин. Такая скорость подходит. А когда добал ко всему этому еще и 4 цены то процесс затянулся более чем на 10 часов. :o( А это никуда не годится.<br><br>Как можно сделать добавление цен более быстрым.<br><br><br><br>Далее представлен кос самой процедуры:<br><br><br><br>Процедура ДобавитьНом(арт,наим,полн,сгтд,сстр, отдел,еи,ц0,ц1,ц2,ц3); <br><br>//ДобавитьНом(наим, пнаим, арт, страна, сертификат, нгтд, гигсер, сербэст, оргсер, аос, регном, срокдейтв);<br><br><br><br>if (ном.НайтиПоКоду(арт,)=0) and (номрод.Найтипокоду(отдел,)=1) then<br><br> ном.Новый();<br><br>//******************************************************************************<br><br> ном.Родитель= номрод.ТекущийЭлемент();<br><br> ном.Код=арт;<br><br> ном.артикул=арт;<br><br> ном.наименование= наим;<br><br> Ном.ПолнНаименование = полн;<br><br>// Обработка ГТД            <br><br>if сгтд <>'' then <br><br> if гтд.НайтиПоНаименованию(сгтд,,)=1 тогда<br><br> Ном.НомерГТД=гтд.ТекущийЭлемент()<br><br> else                              <br><br> гтд.Новый();<br><br> гтд.Наименование=сгтд;<br><br> гтд.Комментарий=сгтд;<br><br> гтд.Записать();<br><br> гтд.НайтиПоНаименованию(сгтд,,);<br><br> Ном.НомерГТД=гтд.ТекущийЭлемент();<br><br>endif;<br><br>endif;<br><br>// завершение обработки ГТД<br><br><br><br>// Страна происхождения<br><br>if сстр <>"""" then<br><br>if Оксм.НайтиПоНаименованию(сстр,,)=1 тогда<br><br> Ном.СтранаПроисхождения=Оксм.ТекущийЭлемент()<br><br> else                              <br><br> оксм.Новый();<br><br>// оксм.Код=кодстр;<br><br> оксм.Наименование=сстр;<br><br> оксм.Записать();<br><br> оксм.НайтиПоНаименованию(сстр,,);<br><br> Ном.СтранаПроисхождения=Оксм.ТекущийЭлемент();<br><br>endif;<br><br><br><br>endif;<br><br>// завершение обработки СтранаПроисхождения<br><br><br><br>ном.Записать();<br><br><br><br><br><br>//Базовая ЕИ<br><br>if (еи<>"""") and (Океи.НайтиПоНаименованию(еи,,)=1) then <br><br>// Сообщить(еи+"|"+Океи.код ,"i");<br><br> ЕдНом.Новый();<br><br> ЕдНом.Владелец=Ном.ТекущийЭлемент();<br><br> Едном.Океи=Океи.ТекущийЭлемент();<br><br> ЕдНом.Коэффициент=1;<br><br> Едном.Записать();<br><br>endif; <br><br> ном.БазоваяЕдиница=Едном.ТекущийЭлемент();<br><br> Ном.записать();<br><br> <br><br>//цена0<br><br> цена.Новый();<br><br> цена.Владелец=Ном.ТекущийЭлемент();<br><br> цена.валюта = рубль;<br><br> цена.процент = 0;<br><br> цена.ТипЦен = тц0;<br><br> цена.Записать();<br><br> цена.Единица.Установить(ТекущаяДата(),ном.БазоваяЕдиница);<br><br> Цена.цена.Установить(ТекущаяДата(),ц0);                  <br><br> цена.Записать();<br><br>//цена1<br><br> цена.Новый();<br><br> цена.Владелец=Ном.ТекущийЭлемент();<br><br> цена.валюта = рубль;<br><br> цена.процент = 0;<br><br> цена.ТипЦен = тц1;<br><br> цена.Записать();<br><br> цена.Единица.Установить(ТекущаяДата(),ном.БазоваяЕдиница);<br><br> Цена.цена.Установить(ТекущаяДата(),ц1);                  <br><br> цена.Записать();<br><br>//цена2<br><br> цена.Новый();<br><br> цена.Владелец=Ном.ТекущийЭлемент();<br><br> цена.валюта = рубль;<br><br> цена.процент = 0;<br><br> цена.ТипЦен = тц2;<br><br> цена.Записать();<br><br> цена.Единица.Установить(ТекущаяДата(),ном.БазоваяЕдиница);<br><br> Цена.цена.Установить(ТекущаяДата(),ц2);                  <br><br> цена.Записать();<br><br>//цена3<br><br> цена.Новый();<br><br> цена.Владелец=Ном.ТекущийЭлемент();<br><br> цена.валюта = рубль;<br><br> цена.процент = 0;<br><br> цена.ТипЦен = тц3;<br><br> цена.Записать();<br><br> цена.Единица.Установить(ТекущаяДата(),ном.БазоваяЕдиница);<br><br> Цена.цена.Установить(ТекущаяДата(),ц3);                  <br><br> цена.Записать();<br><br><br><br>endif;<br><br><br><br>КонецПроцедуры<br><br><br><br>Буду очень благодарен за любые мысли и предложения по этомк поводу."

moroder
читатель
офлайн
Дата регистрации: 16.06.2002
Сообщений: 526
Пост №2
 
18.07.2003 08:39

Поставить процесс работы со справочникам в транзакцию:<br><br>НачатьТранзакцию()<br><br>..........<br><br>ЗафиксироватьТранзакцию()

2L8
читатель
офлайн
Дата регистрации: 17.07.2003
Сообщений: 8
Пост №3
 
18.07.2003 14:51

"Как правильно использоватьтранзакции:<br><br> -Вставить НачатьТранзакцию() В начало процедуры , а ЗафиксироватьТранзакцию() в конце;<br><br>или <br><br>Обработку каждого справочника заключить в<br><br>НачатьТранзакцию() <br><br>.......... <br><br>ЗафиксироватьТранзакцию() <br><br>Как правильно?<br><br>"

2L8
читатель
офлайн
Дата регистрации: 17.07.2003
Сообщений: 8
Пост №4
 
18.07.2003 16:15

Всё, разобрался. Спасибо за идею. Скорость замечательная, жду завершения обработки.

moroder
читатель
офлайн
Дата регистрации: 16.06.2002
Сообщений: 526
Пост №5
 
18.07.2003 18:48

Рад, что у вас усе получилось

Показывать по 10 20 40 сообщений

Читают тему:

Быстрый переход
Для технических специалистов
  • Книга жалоб и предложений по работе сайта
  • Для технических специалистов
  • Представление регламентированной отчетности
  • Говорильня
  • Бухгалтерский учет: обсуждаем проекты нормативных актов и рекомендаций по ведению учета от БМЦ
  • Новый порядок применения ККТ (онлайн кассы с передачей сведений в ФНС)
  • Интернет-конференция: Оформление командировок по новым правилам
  • МАРКИРОВКА
  • ЕГАИС
  • Учет, налогообложение, автоматизация