Бухгалтерский учет, налогообложение, отчетность, МСФО, анализ бухгалтерской информации, 1С:Бухгалтерия

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

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

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

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

"Уважаемый ALL!

Вознокла проблема, перебраски номенклатуры из БЭСТ-ПРО в 1С Педприятие (Торговля +Склад версия 9.2). Написал обработку по созданию новой карточки в справочнике номенклатура. Процесс переброски 34000 записе занял 1ч. 45 мин. Такая скорость подходит. А когда добал ко всему этому еще и 4 цены то процесс затянулся более чем на 10 часов. :o( А это никуда не годится.

Как можно сделать добавление цен более быстрым.



Далее представлен кос самой процедуры:



Процедура ДобавитьНом(арт,наим,полн,сгтд,сстр, отдел,еи,ц0,ц1,ц2,ц3);

//ДобавитьНом(наим, пнаим, арт, страна, сертификат, нгтд, гигсер, сербэст, оргсер, аос, регном, срокдейтв);



if (ном.НайтиПоКоду(арт,)=0) and (номрод.Найтипокоду(отдел,)=1) then

ном.Новый();

//******************************************************************************

ном.Родитель= номрод.ТекущийЭлемент();

ном.Код=арт;

ном.артикул=арт;

ном.наименование= наим;

Ном.ПолнНаименование = полн;

// Обработка ГТД            

if сгтд <>'' then

if гтд.НайтиПоНаименованию(сгтд,,)=1 тогда

Ном.НомерГТД=гтд.ТекущийЭлемент()

else                              

гтд.Новый();

гтд.Наименование=сгтд;

гтд.Комментарий=сгтд;

гтд.Записать();

гтд.НайтиПоНаименованию(сгтд,,);

Ном.НомерГТД=гтд.ТекущийЭлемент();

endif;

endif;

// завершение обработки ГТД



// Страна происхождения

if сстр <>"""" then

if Оксм.НайтиПоНаименованию(сстр,,)=1 тогда

Ном.СтранаПроисхождения=Оксм.ТекущийЭлемент()

else                              

оксм.Новый();

// оксм.Код=кодстр;

оксм.Наименование=сстр;

оксм.Записать();

оксм.НайтиПоНаименованию(сстр,,);

Ном.СтранаПроисхождения=Оксм.ТекущийЭлемент();

endif;



endif;

// завершение обработки СтранаПроисхождения



ном.Записать();





//Базовая ЕИ

if (еи<>"""") and (Океи.НайтиПоНаименованию(еи,,)=1) then

// Сообщить(еи+"|"+Океи.код ,"i");

ЕдНом.Новый();

ЕдНом.Владелец=Ном.ТекущийЭлемент();

Едном.Океи=Океи.ТекущийЭлемент();

ЕдНом.Коэффициент=1;

Едном.Записать();

endif;

ном.БазоваяЕдиница=Едном.ТекущийЭлемент();

Ном.записать();



//цена0

цена.Новый();

цена.Владелец=Ном.ТекущийЭлемент();

цена.валюта = рубль;

цена.процент = 0;

цена.ТипЦен = тц0;

цена.Записать();

цена.Единица.Установить(ТекущаяДата(),ном.БазоваяЕдиница);

Цена.цена.Установить(ТекущаяДата(),ц0);                  

цена.Записать();

//цена1

цена.Новый();

цена.Владелец=Ном.ТекущийЭлемент();

цена.валюта = рубль;

цена.процент = 0;

цена.ТипЦен = тц1;

цена.Записать();

цена.Единица.Установить(ТекущаяДата(),ном.БазоваяЕдиница);

Цена.цена.Установить(ТекущаяДата(),ц1);                  

цена.Записать();

//цена2

цена.Новый();

цена.Владелец=Ном.ТекущийЭлемент();

цена.валюта = рубль;

цена.процент = 0;

цена.ТипЦен = тц2;

цена.Записать();

цена.Единица.Установить(ТекущаяДата(),ном.БазоваяЕдиница);

Цена.цена.Установить(ТекущаяДата(),ц2);                  

цена.Записать();

//цена3

цена.Новый();

цена.Владелец=Ном.ТекущийЭлемент();

цена.валюта = рубль;

цена.процент = 0;

цена.ТипЦен = тц3;

цена.Записать();

цена.Единица.Установить(ТекущаяДата(),ном.БазоваяЕдиница);

Цена.цена.Установить(ТекущаяДата(),ц3);                  

цена.Записать();



endif;



КонецПроцедуры



Буду очень благодарен за любые мысли и предложения по этомк поводу."

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

Поставить процесс работы со справочникам в транзакцию:

НачатьТранзакцию()

..........

ЗафиксироватьТранзакцию()

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

"Как правильно использоватьтранзакции:

-Вставить НачатьТранзакцию() В начало процедуры , а ЗафиксироватьТранзакцию() в конце;

или

Обработку каждого справочника заключить в

НачатьТранзакцию()

..........

ЗафиксироватьТранзакцию()

Как правильно?

"

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 сообщений

Читают тему:

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

1С бесплатно 1С-Отчетность 1С:ERP Управление предприятием 1С:Бесплатно 1С:Бухгалтерия 8 1С:Бухгалтерия 8 КОРП 1С:Бухгалтерия автономного учреждения 1С:Бухгалтерия государственного учреждения 1С:Бюджет муниципального образования 1С:Бюджет поселения 1С:Вещевое довольствие 1С:Деньги 1С:Документооборот 1С:Зарплата и кадры бюджетного учреждения 1С:Зарплата и кадры государственного учреждения 1С:Зарплата и управление персоналом 1С:Зарплата и управление персоналом КОРП 1С:Комплексная автоматизация 8 1С:Лекторий 1С:Предприятие 1С:Предприятие 7.7 1С:Предприятие 8 1С:Розница 1С:Управление нашей фирмой 1С:Управление производственным предприятием 1С:Управление торговлей 1СПредприятие 8

Все теги