Имя: Пароль:
1C
1С v8
УТ11: другая особенность учета
0 Mikhail Volkov
 
20.04.17
11:40
При изменении вида номенклатуры в УТ11 возникает ошибка: Проблема при изменении вида номенклатуры: у нового вида другая особенность учета.
Нашел процедуру ПроверитьКорректностьСменыВидаНоменклатурыЗаполнитьПоНовомуВиду(), которая Проверяет корректность смены вида номенклатуры и в случае проблем выставляет отказ в ИСТИНА. Но не пойму в чем эта "другая особенность учета"? Кто разбирался с этим?
1 yzimin
 
20.04.17
12:21
Возможно другой вид номенклатуры имеет тип не товар, а услуга, другой набор дополнительных свойст, другой набор обязательных к заполнению реквизитов, учёт по сериям, учёт по характеристикам - другая особенность учёта. Короче, много чего может влиять.
2 yzimin
 
20.04.17
12:22
Но это же предупреждение, там есть кнопка Отключить и меняйте спокойно вид
3 Cyberhawk
 
20.04.17
12:22
Вспоминается анекдот "но есть нюансы"
4 Mikhail Volkov
 
20.04.17
12:33
(2) Где? В диалоге "Изменение выделенных элементов" - нет!? В карточке товара это можно сделать повторным сохранением, но при групповом изменении проигнорировать эту ошибку не получается.
5 Джинн
 
20.04.17
12:53
(4) Вы хотите получить рекомендации по выбору лучшего сорта мыла для веревки?
6 Mikhail Volkov
 
20.04.17
12:56
(4) Понять, в чем эта "другая особенность учета"?
Как вывести результирующий текст запроса и его параметры вывести из модуля менеджера? Сообщить() не выводит.
7 Джинн
 
20.04.17
12:59
(6) Перевожу на русский эту фразу "Своими действиями Вы можете изменить базовую нормативно-справочную информацию, используемую в учете и развалить его на хрен".
8 Худой
 
20.04.17
17:24
(4)"но при групповом изменении проигнорировать эту ошибку не получается"
У меня получается.
9 Mikhail Volkov
 
20.04.17
17:35
(7) Для себя так перевел?
Из результирующего текста запроса в данном случае интересен лишь фрагмент:
    ВЫБОР
        КОГДА &Ссылка = НовыйВидНоменклатуры.Ссылка
            ТОГДА ЛОЖЬ
        КОГДА &ОсобенностьУчета <> НовыйВидНоменклатуры.ОсобенностьУчета
            ТОГДА ИСТИНА
        ИНАЧЕ ЛОЖЬ
    КОНЕЦ  КАК ЕстьПроблемаОсобенностьУчета,
типа если ОсобенностьУчета нового и старого вида номенклатуры не совпадают, то ЕстьПроблемаОсобенностьУчета.
Для старого вида, который подставляется по умолчанию:
Параметры (реквизиты старого вида номенклатуры):
ВладелецСерий -
ВладелецХарактеристик -
ИспользованиеХарактеристик - Не используются
ИспользоватьСерии - Нет
ОсобенностьУчета -
Ссылка - Товар (б/х)
ТипНоменклатуры - Товар
т.е. ОсобенностьУчета не заполнено?! Видимо создан, в старых релизах, когда не было ОсобенностьУчета. А для новых: Без особенностей учета. Открываю справочник ВидНоменклатуры, ОсобенностьУчета как реквизит в форме отсутствует, нельзя поменять/установить!? Если эта особенность: АлкогольнаяПродукция, СодержитДрагоценныеМатериалы, и прочее, то в форме появятся дополнительные реквизиты. А для Без особенностей учета все скрыто. Как быть?
10 Mikhail Volkov
 
21.04.17
04:48
В форме справочника ВидНоменклатуры есть процедура ТипНоменклатурыПриИзмененииКлиент(), вроде позволяет что-то сделать с реквизитом ОсобенностьУчета. Но похоже она не задействовано!?
11 Mikhail Volkov
 
21.04.17
06:38
Проще внешней обработкой:

&НаСервере
Процедура ВыполнитьНаСервере()
    Счетчик = 0; Исправлено = 0;
    Выборка = Справочники.ВидыНоменклатуры.Выбрать();
    Пока Выборка.Следующий() Цикл
        Если Выборка.ПометкаУдаления Тогда
            Продолжить;
        КонецЕсли;
        Счетчик = Счетчик + 1;
        Если ЗначениеЗаполнено(Выборка.ОсобенностьУчета) Тогда
            Сообщить("Вид номенклатуры: '" + СокрЛП(Выборка.Ссылка) + "' имеет особенность учета: '" + СокрЛП(Выборка.ОсобенностьУчета) + "'", СтатусСообщения.Информация);
            Продолжить;
        КонецЕсли;
        
        ОбъектВидНоменклатуры = Выборка.ПолучитьОбъект();
        ОбъектВидНоменклатуры.ОсобенностьУчета = Перечисления.ОсобенностиУчетаНоменклатуры.БезОсобенностейУчета;
        Попытка
            ОбъектВидНоменклатуры.Записать();
            Исправлено = Исправлено + 1;
            Сообщить("Исправлен: '" + СокрЛП(ОбъектВидНоменклатуры) + "'", СтатусСообщения.Информация);
        Исключение
            Сообщить("Не удалось исправить: '" + СокрЛП(ОбъектВидНоменклатуры) + "'", СтатусСообщения.Внимание);
        КонецПопытки;
    КонецЦикла;
    Сообщить("Всего исправлено: " + Исправлено + " видов номенклатуры из " + Счетчик, СтатусСообщения.Информация);
КонецПроцедуры

Всем спс за помощь.
12 Mikhail Volkov
 
21.04.17
09:13
Есть штатные возможности - Групповым Изменением Реквизитов можно у Видов Номенклатуры Особенность Учета поменять.
13 Cyberhawk
 
21.04.17
14:11
Почему-то мне кажется, что Mikhail Volkov - это подросший LivingStar ))
14 Масянька
 
21.04.17
14:13
(12) Очередная "нетленка"?
15 Mikhail Volkov
 
27.04.17
05:55
(14) Ни каких своих изменений в УТ11.2 не вносил. Даже исправить причину ошибки оказалось можно штатными средствами.