Подскажите пожалуйста, почему не работает этот код?
Процедура ПриУстановкеНовогоКода(СтандартнаяОбработка, Префикс)
Если Родитель = "Товары" Тогда
Префикс = "ТОВ";
Иначе
Префикс = "У";
КонецЕсли;
КонецПроцедуры
А как Вы определили, что код не работает?
Хотя можно догадаться, что вы ссылку на родителя сравниваете с наименованием родителя
Процедура ПриУстановкеНовогоКода(СтандартнаяОбработка, Префикс)
Если Родитель.Наименование = "Товары" Тогда
Префикс = "ТОВ";
Иначе
Префикс = "У";
КонецЕсли;
КонецПроцедуры
Попробовал немного усложнить
Процедура ПриУстановкеНовогоКода(СтандартнаяОбработка, Префикс)
Если Родитель.Наименование = "АвтоВертолетыГаражи" Тогда
Префикс = "А";
ИначеЕсли Родитель.Наименование = "АзбукаЛогикаПирамидкиКубикиКаталки" Тогда
Префикс = "Аз";
ИначеЕсли Родитель.Наименование = "БытоваяТехника" Тогда
Префикс = "Б";
Иначе
СтандартнаяОбработка = Истина;
КонецЕсли;
КонецПроцедуры
Посмотрите в отладчике
Попробуйте так
Процедура ПриУстановкеНовогоКода(СтандартнаяОбработка, Префикс)
Если Родитель.Наименование = "АвтоВертолетыГаражи" Тогда
Префикс = "А";
ИначеЕсли Родитель.Наименование = "АзбукаЛогикаПирамидкиКубикиКаталки" Тогда
Префикс = "Аз";
ИначеЕсли Родитель.Наименование = "БытоваяТехника" Тогда
Префикс = "Б";
КонецЕсли;
КонецПроцедуры
Ужас какой... А почему для этих целей нельзя использовать артикул, например?
А что будет если кто-то изменит наименование родителя, не думали? Может логичнее сделать их предопределенными?
Процедура ПриУстановкеНовогоКода(СтандартнаяОбработка, Префикс)
Если Родитель.Наименование = "АвтоВертолетыГаражи" Тогда
Префикс = "А";
ИначеЕсли Родитель.Наименование = "АзбукаЛогикаПирамидкиКубикиКаталки" Тогда
Префикс = "Аз";
ИначеЕсли Родитель.Наименование = "БытоваяТехника" Тогда
Префикс = "Б";
КонецЕсли;
КонецПроцедуры
...
Иначе
СтандартнаяОбработка = Ложь;
Сообщить("Группа не найдена");
Возврат;
Позволю себе 5 копеек.
Если уж коряжить в конфе - то проще добавить реквизит Префикс
и устанавливать в коде одной строчкой
Лучше создать Регистр сведений "Префиксы справочников" из двух измерений - "Справочник" и "Префикс". Потом в процедуре установки кода выгружать этот регистр в таблицу значений, отсортировать по убыванию уровня справочника и далее перебором строк проверять на принадлежность родителю и т.о. получить префикс.
создать Регистр сведений "Префиксы справочников" из двух измерений - "Справочник" и "Префикс".
Автору нужно изменять префикс в пределах справочника в зависимости от родителя...
та довідник Номенклатура звісно.
Bodka, уточнюйте у бухгалтерів, для чого їм це, бо побудуєте красивий будинок на піску.
крім того, що Родитель може хтось переіменувати, ще сам елемент (Товар) можна попереміщати по папкам, а якщо будете присвоювати новий префікс в новій папці - конфлікт по унікальності.
Читається алгорим між Найменуванням і префіксом - літери верхнього регістру можна взять. для унікальності щось додумати....+код...чи не поміститься...
Оставил присвоение префикса по родителю...
Запретил создавать и редактировать группы... Пока устраивает...
Процедура ПриЗаписи(Отказ)
Если ЭтоГруппа Тогда
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
Процедура ПриЗаписи(Отказ)
Отказ = ЭтоГруппа И НЕ РольДоступна("ПолныеПрава");
КонецПроцедуры
Для чего это нужно бухгалтерам?
Может Вам программисты совсем другой путь подскажут. )
А если элемент будете перемещать из папки в папку?
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua