Имя: Пароль:
1C
1С v8
При обмене неправильно ставится ед. изм у номенклатуры, помогите разобраться
0 Vladius
 
10.12.12
13:49
Переношу с 7.7 конфа ПУБ номенклатуру, все вроде как переносится красиво, все ед. измерения перенеслись и проставились в номенклатуре, но когда я просто открываю номенклатуру потом пытаюсь записать элемент то программа ругается что неверно указан владелец у номенклатуры, т.е с 7.7 выгружается и присваивается единица другой номенклатуры. Проблема решается простым перевыбором ед. измерения. Но мне это надо исправить в правилах так как при переносе бух. остатков у всей номенклатуры опять сбивается ед. измерения.
Попытался решить проблем вот так:
В КД зашёл в ПКО Номенклатуры, в событии "После загрузки" написал следующий код, в котором я просто выбираю ед. измерения номенклатуры у которой наименование "шт.". Этот же код использую в обработке что бы исправить все единицы. Но при загрузке единицы остаются кривыми, подскажите как решить данную проблему другим способом?

Код в событии "После загрузки":
Если НЕ Объект.ЭтоГруппа Тогда
   Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ
                  |    Номенклатура.Ссылка
                  |ПОМЕСТИТЬ Номенклатура
                  |ИЗ
                  |    Справочник.Номенклатура КАК Номенклатура
                  |ГДЕ
                  |    Номенклатура.ПометкаУдаления = ЛОЖЬ
                  |    И Номенклатура.ЭтоГруппа = ЛОЖЬ
                  |    И Номенклатура.Ссылка = &Номенклатура
                  |;
                  |
                  |////////////////////////////////////////////////////////////////////////////////
                  |ВЫБРАТЬ
                  |    ЕдиницыИзмерения.Ссылка КАК ЕдИзм,
                  |    Номенклатура.Ссылка КАК Номенклатура
                  |ИЗ
                  |    Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения
                  |        ПОЛНОЕ СОЕДИНЕНИЕ Номенклатура КАК Номенклатура
                  |        ПО ЕдиницыИзмерения.Владелец = Номенклатура.Ссылка
                  |ГДЕ
                  |    ЕдиницыИзмерения.Наименование ПОДОБНО &Наименование";
   Запрос.УстановитьПараметр("Наименование",  "%" + "шт." + "%");
   Запрос.УстановитьПараметр("Номенклатура",  Объект.Ссылка);
   
   Выборка = Запрос.Выполнить().Выбрать();
   
       ИзИзм = Справочники.ЕдиницыИзмерения.ПустаяСсылка();
   Пока Выборка.Следующий() Цикл
       ЕдИзм = Выборка.ЕдИзм;
   КонецЦикла;
   
   Объект.ЕдиницаДляОтчетов = ЕдИзм;
   Объект.ЕдиницаХраненияОстатков = ЕдИзм;
КонецЕсли;
1 sidalexsandr
 
10.12.12
13:54
|        ПО ЕдиницыИзмерения.Владелец = Номенклатура.Ссылка
Подправь на
| ПО ЕдиницыИзмерения.Владелец.Ссылка = Номенклатура.Ссылка
2 chelentano
 
10.12.12
13:57
(1) нормально так посоветовал
3 chelentano
 
10.12.12
13:59
(0) у тебя полное соединение, это значит, что в выборку попадут все единицы измерения, которые удовлетворяют условиям
4 chelentano
 
10.12.12
14:01
(0)
ВЫБРАТЬ
   ЕдиницыИзмерения.Ссылка КАК ЕдИзм,
ИЗ
   Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения
ГДЕ
   ЕдиницыИзмерения.Наименование ПОДОБНО &Наименование
И ЕдиницыИзмерения.Владелец = &Номенклатура";
5 Vladius
 
10.12.12
14:02
(4) Сейчас попробую
6 Vladius
 
10.12.12
14:14
(4) Теперь у половины номенклатуры удалились единицы которые были и создалась одна единица "шт.". А у остальных товаров все ок, единицы установилась, значит код работает.
Ну почему он удалил те единицы которые были? Бред...
7 Vladius
 
10.12.12
14:34
Заново перенес справочник единицы, потом опять загрузил номенклатуру единицы проставились :)
Закон Брукера: Даже маленькая практика стоит большой теории.