1С:Предприятие 7.7 конф "Комплексная" Обработка спр. Номенклатура
Показывать по
10
20
40
сообщений
- 1
- 2
31.10.2011
10:55
#1
"1с:Предприятие 7.7, конфигурация "Комплексная" релиз 510. В справочнике "Номенклатура" пропали(очистились) базовые единицы измерения. Сами справочники "единиц" остались на месте. Для восстановления ситуации сделано:
1) Тестирование и исправление ИБ(с настройками - создавать объекты) - без положительного результата.
2) написана обработка:
//*******************************************
Процедура Выполнить()
Номенклатура = СоздатьОбъект("Справочник.Номенклатура");
СпрЕдиниц = СоздатьОбъект("Справочник.Единицы");
Шт = глЗначениеПоУмолчанию("ОсновнаяОКЕИ");
Номенклатура.ВыбратьЭлементы();
Пока Номенклатура.ПолучитьЭлемент() = 1 Цикл
ТекНоменклатура = Номенклатура.ТекущийЭлемент();
Если (ТекНоменклатура.ЭтоГруппа() = 1) ИЛИ (ПустоеЗначение(ТекНоменклатура.БазоваяЕдиница) = 0) Тогда
// Сообщить("Пропускаем" + ТекЭлем.Наименование);
Продолжить;
Иначе
СпрЕдиниц.ВыбратьЭлементы();
СпрЕдиниц.ИспользоватьВладельца(ТекНоменклатура);
Если СпрЕдиниц.НайтиПоРеквизиту("ОКЕИ",Шт,) = 1 Тогда
ТекЕдиница = СпрЕдиниц.ТекущийЭлемент();
ТекНоменклатура.БазоваяЕдиница = ТекЕдиница;
Попытка
Номенклатура.Записать();
Сообщить("Записали " +ТекНоменклатура.Наименование + " " + ТекНоменклатура.БазоваяЕдиница);
// Прервать; // для отладки, что бы не ждать конца обработки всего справочника
Исключение
Предупреждение( "Не выполнено сохр. спр. " + ТекНоменклатура + ОписаниеОшибки() +
РазделительСтрок + "Элемент не сохранен)", 60);
КонецПопытки;
Иначе
Сообщить("У номенклатуры " + ТекНоменклатура + " нет едниц");
КонецЕсли;
КонецЕсли;
КонецЦикла
Но она не дает результата. В какую сторону смотреть?"
1) Тестирование и исправление ИБ(с настройками - создавать объекты) - без положительного результата.
2) написана обработка:
//*******************************************
Процедура Выполнить()
Номенклатура = СоздатьОбъект("Справочник.Номенклатура");
СпрЕдиниц = СоздатьОбъект("Справочник.Единицы");
Шт = глЗначениеПоУмолчанию("ОсновнаяОКЕИ");
Номенклатура.ВыбратьЭлементы();
Пока Номенклатура.ПолучитьЭлемент() = 1 Цикл
ТекНоменклатура = Номенклатура.ТекущийЭлемент();
Если (ТекНоменклатура.ЭтоГруппа() = 1) ИЛИ (ПустоеЗначение(ТекНоменклатура.БазоваяЕдиница) = 0) Тогда
// Сообщить("Пропускаем" + ТекЭлем.Наименование);
Продолжить;
Иначе
СпрЕдиниц.ВыбратьЭлементы();
СпрЕдиниц.ИспользоватьВладельца(ТекНоменклатура);
Если СпрЕдиниц.НайтиПоРеквизиту("ОКЕИ",Шт,) = 1 Тогда
ТекЕдиница = СпрЕдиниц.ТекущийЭлемент();
ТекНоменклатура.БазоваяЕдиница = ТекЕдиница;
Попытка
Номенклатура.Записать();
Сообщить("Записали " +ТекНоменклатура.Наименование + " " + ТекНоменклатура.БазоваяЕдиница);
// Прервать; // для отладки, что бы не ждать конца обработки всего справочника
Исключение
Предупреждение( "Не выполнено сохр. спр. " + ТекНоменклатура + ОписаниеОшибки() +
РазделительСтрок + "Элемент не сохранен)", 60);
КонецПопытки;
Иначе
Сообщить("У номенклатуры " + ТекНоменклатура + " нет едниц");
КонецЕсли;
КонецЕсли;
КонецЦикла
Но она не дает результата. В какую сторону смотреть?"
31.10.2011
12:53
#2
"1) Запишите номенклатуру после установки единицы. Не Номенклатура.Записать(), а ТекНоменклатура.Записать().
2) Вот это вот "СпрЕдиниц.ВыбратьЭлементы();" зачем ?
3) Не помню точно, но в "СпрЕдиниц.НайтиПоРеквизиту("ОКЕИ",Шт,) " лучше установить ФлагГлобальногоПоиска в 0"
2) Вот это вот "СпрЕдиниц.ВыбратьЭлементы();" зачем ?
3) Не помню точно, но в "СпрЕдиниц.НайтиПоРеквизиту("ОКЕИ",Шт,) " лучше установить ФлагГлобальногоПоиска в 0"
31.10.2011
13:45
#4
"Да, это я 7.7 подзабыл.
У элемента "ТекНоменклатура" нет смысл что-либо устанавливать.
"Номенклатура.БазоваяЕдиница = ТекЕдиница; Номенклатура.Записать()" - должно быть."
У элемента "ТекНоменклатура" нет смысл что-либо устанавливать.
"Номенклатура.БазоваяЕдиница = ТекЕдиница; Номенклатура.Записать()" - должно быть."
31.10.2011
13:53
#5
Так и пробую, почему то не работает? Пробовал и внутри "Если" и с "наружи". После записи значение читает, сам справочник(форма) имеет другое значение, но читает его из этого места. Я потерялся. В предидущих вариантах я не обратил внимания, что сами справочники остались и создавал их за ново. Все создавались и записывались согласно подчиненности при каждом запуске обработки.
31.10.2011
14:19
#6
""Сообщить("Записали " +ТекНоменклатура.Наименование + " " + ТекНоменклатура.БазоваяЕдиница);"
Вот эта строка правильно отрабатывает?"
Вот эта строка правильно отрабатывает?"
31.10.2011
14:27
#7
Да, да. И единицы пишет правильно. А вот при открытии справочника ... пусто. Да и при выполнении самой обработки по второму разу, она уже ни чего там не видит.(Как будто запись на диск запрещена).
31.10.2011
14:40
#8
По "Родителю" то же правильно отрабатывает, если справочник единиц удалить - пишет что его нет.
- 1
- 2
770027, Комплексная 770492, При переустановке на Windows 7 не обнаруживает ключ защиты.Сохраненный регл.отчет - не обновляется форма при подключении нового внешнего
Читают тему
(гостей: 1)