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

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

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

1С:Предприятие 7.7 конф "Комплексная" Обработка спр. Номенклатура

kostromin63
читатель
офлайн
Дата регистрации: 31.10.2011
Сообщений: 1
Пост №1
 
31.10.2011 10:55

"1с:Предприятие 7.7, конфигурация "Комплексная" релиз 510. В справочнике "Номенклатура" пропали(очистились) базовые единицы измерения. Сами справочники "единиц" остались на месте. Для восстановления ситуации сделано:<br>1) Тестирование и исправление ИБ(с настройками - создавать объекты) - без положительного результата.<br>2) написана обработка:<br>//*******************************************<br>Процедура Выполнить()<br> <br>Номенклатура = СоздатьОбъект("Справочник.Номенклатура");<br>СпрЕдиниц = СоздатьОбъект("Справочник.Единицы");<br> <br> Шт = глЗначениеПоУмолчанию("ОсновнаяОКЕИ");<br> <br> Номенклатура.ВыбратьЭлементы();<br> Пока Номенклатура.ПолучитьЭлемент() = 1 Цикл<br>       ТекНоменклатура = Номенклатура.ТекущийЭлемент();<br>       Если (ТекНоменклатура.ЭтоГруппа() = 1) ИЛИ (ПустоеЗначение(ТекНоменклатура.БазоваяЕдиница) = 0) Тогда<br>       //            Сообщить("Пропускаем" + ТекЭлем.Наименование);<br>       Продолжить;<br>       Иначе <br>       СпрЕдиниц.ВыбратьЭлементы();<br>       СпрЕдиниц.ИспользоватьВладельца(ТекНоменклатура);<br>       <br>            Если СпрЕдиниц.НайтиПоРеквизиту("ОКЕИ",Шт,) = 1 Тогда<br>             ТекЕдиница = СпрЕдиниц.ТекущийЭлемент();<br>             ТекНоменклатура.БазоваяЕдиница = ТекЕдиница;<br>             Попытка<br>                   Номенклатура.Записать();<br>                   Сообщить("Записали " +ТекНоменклатура.Наименование + " " + ТекНоменклатура.БазоваяЕдиница);<br>                   //            Прервать; // для отладки, что бы не ждать конца обработки всего справочника<br>             Исключение<br>                   Предупреждение( "Не выполнено сохр. спр. " + ТекНоменклатура + ОписаниеОшибки() +<br>                   РазделительСтрок + "Элемент не сохранен)", 60);<br>             КонецПопытки;<br>       Иначе<br>             Сообщить("У номенклатуры " + ТекНоменклатура + " нет едниц");<br>       КонецЕсли;<br>       <br>       КонецЕсли;<br> КонецЦикла<br><br>Но она не дает результата. В какую сторону смотреть?"

BubbleGumm
читатель
офлайн
Дата регистрации: 14.06.2011
Сообщений: 39
Пост №2
 
31.10.2011 12:53

"1) Запишите номенклатуру после установки единицы. Не Номенклатура.Записать(), а ТекНоменклатура.Записать().<br>2) Вот это вот "СпрЕдиниц.ВыбратьЭлементы();" зачем ?<br>3) Не помню точно, но в "СпрЕдиниц.НайтиПоРеквизиту("ОКЕИ",Шт,) " лучше установить ФлагГлобальногоПоиска в 0"

kostromin63
читатель
офлайн
Дата регистрации: 31.10.2011
Сообщений: 1
Пост №3
 
31.10.2011 13:12

Пробовал - пишет объект не выбран. Даже через транзакцию - результат ноль.

BubbleGumm
читатель
офлайн
Дата регистрации: 14.06.2011
Сообщений: 39
Пост №4
 
31.10.2011 13:45

"Да, это я 7.7 подзабыл.<br>У элемента "ТекНоменклатура" нет смысл что-либо устанавливать.<br>"Номенклатура.БазоваяЕдиница = ТекЕдиница; Номенклатура.Записать()" - должно быть."

kostromin63
читатель
офлайн
Дата регистрации: 31.10.2011
Сообщений: 1
Пост №5
 
31.10.2011 13:53

Так и пробую, почему то не работает? Пробовал и внутри "Если" и с "наружи". После записи значение читает, сам справочник(форма) имеет другое значение, но читает его из этого места. Я потерялся. В предидущих вариантах я не обратил внимания, что сами справочники остались и создавал их за ново. Все создавались и записывались согласно подчиненности при каждом запуске обработки.

Ульяна А.
читатель
офлайн
Дата регистрации: 25.06.2007
Сообщений: 82
Пост №6
 
31.10.2011 14:19

""Сообщить("Записали " +ТекНоменклатура.Наименование + " " + ТекНоменклатура.БазоваяЕдиница);"<br> <br>Вот эта строка правильно отрабатывает?"

kostromin63
читатель
офлайн
Дата регистрации: 31.10.2011
Сообщений: 1
Пост №7
 
31.10.2011 14:27

Да, да. И единицы пишет правильно. А вот при открытии справочника ... пусто. Да и при выполнении самой обработки по второму разу, она уже ни чего там не видит.(Как будто запись на диск запрещена).

kostromin63
читатель
офлайн
Дата регистрации: 31.10.2011
Сообщений: 1
Пост №8
 
31.10.2011 14:40

По "Родителю" то же правильно отрабатывает, если справочник единиц удалить - пишет что его нет.

Ульяна А.
читатель
офлайн
Дата регистрации: 25.06.2007
Сообщений: 82
Пост №9
 
31.10.2011 14:44

"ТекНоменклатура = Номенклатура.ТекущийЭлемент();<br> <br>Я думаю, что вот эта строка лишняя. Я обычно обращаюсь к реквизиту в таких случаях без указания "ТекущийЭлемент()"<br>Просто: Номенклатура.ЕдИзм или как там.<br>Попробуйте."

kostromin63
читатель
офлайн
Дата регистрации: 31.10.2011
Сообщений: 1
Пост №10
 
31.10.2011 14:53

О чудО!!! На не спозиционированном метод "Сообщить" перестал видеть единицы, а вот в справочнике все записалось. Всем огромное спасибо. А автору "рабочего" ответа огромнейшее.

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

Читают тему:

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