Имя: Пароль:
1C
1C 7.7
v7: поменять реквизит в справочнике Единицы
0 onguk
 
09.02.13
00:33
написал обработку для замены реквизитов справочника Единицы в Комплексной. Реквизит ОКЕИ по отладчику все нормальн, а по факту
не заносит в справочник. Прошу подскажите что на так.

Спр=СоздатьОбъект("Справочник.Номенклатура");
Ед=СоздатьОбъект("Справочник.Единицы");
 Оке=СоздатьОбъект("Справочник.ОКЕИ");
   
   Спр.ВыбратьЭлементы();//перебираем справочник-владелец
   Пока спр.ПолучитьЭлемент()=1 Цикл    
       Если спр.ЭтоГруппа()=1  Тогда
           продолжить;
       КонецЕсли;
       
       
       Ед.ИспользоватьВладельца(спр.ТекущийЭлемент());
       Ед.Новый();  
   
       Оке.ВыбратьЭлементы();
   Пока Оке.ПолучитьЭлемент()=1 Цикл    
       Если Оке.Наименование="шт"  Тогда
           Прервать;
       КонецЕсли;
         продолжить;
   КонецЦикла;
       Ед.УстановитьАтрибут("ОКЕИ",Оке.Наименование);
       Ед.Коэффициент=1;
       Ед.записать();
   конецЦикла;
1 Джордж1
 
09.02.13
00:37
Ед.УстановитьАтрибут("ОКЕИ",Оке.ТекущийЭлемент());
2 Cthulhu
 
09.02.13
00:54
И - это, как бы помягче-то сказать. в цикле перебора и изменения ВСЕХ элементов справочника - делать для КАЖДОГО из них перебор другого справочника... это - феерическая глупость, да (мягко выражаясь!).
3 zak555
 
09.02.13
00:55
ты лучше создавай, а потом дубли удаляй
4 onguk
 
09.02.13
00:58
Спасибо все сработало но проблемы остались с этим справочником а именно в справочнике Номенклатура
не отображаются ни шт ни штрихкод. В файле SC84.dbf
это база Номенклатуры в полях SP86 и SP94 не происываются
номера ID Справочника Единицы как быть в этом случае
5 onguk
 
09.02.13
01:01
Cthulhu согласен это от того, что когда упрешься в одно а
глупость творишь в другом. :)
6 Cthulhu
 
09.02.13
01:06
// и ещё ляпов хватает.
// - для объекта ".ЭтоГруппа" не отрабатывает - только для ссылки на элемент;
// - в этом справонике есть куча периодиеских реквизитов, для них тупо присвоить не сработает
// - дубликаты с таким ОКЕИ плодить - вообще тупость, сначала надо проверить - м.б. уж есть?..
// - ...
Оке=СоздатьОбъект("Справочник.ОКЕИ");
Оке.ВыбратьЭлементы(); Пока Оке.ПолучитьЭлемент()<>0
Цикл Если Оке.Наименование="шт"
Тогда Прервать КонецЕсли КонецЦикла; Оке=Оке.ТекущийЭлемент();
Если Оке.Выбран()<>1 Тогда
 Оке="Единица ""шт"" для установки в ОКЕИ НЕ НАЙДЕНА!.. Давай, до свиданья!..";
 Сообщить(Оке,"!!!"); Предупреждение(Оке,12); СтатусВозврата(0); Возврат;
КонецЕсли;
Спр=СоздатьОбъект("Справочник.Номенклатура");
Ед=СоздатьОбъект("Справочник.Единицы");
Ед.ИспользоватьДату(ВыбДатаУстановкиПериодики);
Спр.ВыбратьЭлементы(); Пока спр.ПолучитьЭлемент()<>0 Цикл    
 Если Спр.ТекущийЭлемент().ЭтоГруппа()<>0 Тогда Продолжить КонецЕсли;
 Ед.ИспользоватьВладельца(Спр.ТекущийЭлемент());
 Ед.ВыбратьЭлементы(); Пока Ед.ПолучиьЭлемент()<>0
 Цикл Если Ед.ОКЕИ=Оке Тогда Прервать КонецЕсли КнецЦикла; // Ну или НайтиЭлементПоРеквизиту если можно
 Если Ед.Выбран()<>0 Тогда Продолжить КонецЕсли;
 Ед.Новый(); Ед.ОКЕИ=Оке; Ед.Коэффициент=1; Ед.записать();
КонецЦикла;
7 onguk
 
09.02.13
01:23
Cthulhu большое спасибо за внимание.
Сильно не заморачивался по причине:
Номенклатуру заношу в чистую базу с xls
се заносится кроме Единици измерения их вот и пытаюсь
занести отдельно а справочник Единицы но не получается.