|
Помогите с кодом обработки | ☑ | ||
---|---|---|---|---|
0
VladB
11.04.18
✎
18:18
|
Привет всем. Помогите ветерану с кодом обработки.
Конфигурация ЗУП 3.1.6.6, платформа 8.3.11.3034 Ни разу не доводилось писать на 8.3. Нужно обработкой пройти по табличной части "НачисленнаяЗарплатаИВзносы" документа "ОтражениеЗарплатыВБухучете" и в поле "Подразделение" этой ТЧ заменить элементы справочника "ПодразделенияОрганизаций" на их родителей. Справочник "ПодразделенияОрганизаций" двухуровневый, нумерация "В пределах подчинения владельцу". Вот такой код сочинил: &НаСервере Процедура Команда1НаСервере() Сообщить("Выполняю");//для отладки Док=ВыбДок.ПолучитьОбъект();//ОтражениеЗарплатыВБухучете Сообщить(Док.Номер);//для отладки Подр=Справочники.ПодразделенияОрганизаций; Для Каждого Стр Из Док.НачисленнаяЗарплатаИВзносы Цикл ПодрС=Стр.Подразделение.Ссылка; ПодрСПолнКод=ПодрС.ПолныйКод(); Сообщить(ПодрСПолнКод);//для отладки Если Подр.НайтиПоКоду(ПодрСПолнКод,Истина)=1 Тогда ПодрО=Подр.ПолучитьОбъект(); Если ПодрО.Уровень()=2 Тогда ПодрРод=ПодрО.Родитель.Ссылка; Сообщить(ПодрРод.Наименование); Стр.Подразделение=ПодрРод; Сообщить("Новый "+ПодрРод.Наименование); КонецЕсли; Иначе Сообщить("Не найден "+ПодрСПолнКод); КонецЕсли; КонецЦикла; Док.Записать(); КонецПроцедуры При попытке выполнить пишет ошибку: {ВнешняяОбработка.ЗаменаПодразделений_ОтражениеЗП.Форма.Форма.Форма(10)}: Ошибка при вызове метода контекста (ПолныйКод) ПодрСПолнКод=ПодрС.ПолныйКод(); по причине: Элемент не выбран! Какой элемент не выбран? Куда не выбран? Когда это сообщение закрываю, в окне сообщений внизу пишет: Выполняю 00ЗК-000001 (это номер документа) 000000014/000000016 Не найден 000000014/000000016 и далее по каждой строке ТЧ номер кода и не найден Если она видит номер кода, то какого ляда пишет про ошибку и почему его не ищет? Как правильно написать код? Помогите кто может!! Готов принять любую ругань (критику) в свой адрес. |
|||
1
Cyberhawk
11.04.18
✎
18:30
|
НайтиПоКоду не ищет по полному коду
|
|||
2
Cyberhawk
11.04.18
✎
18:31
|
А если даже и ищет, то что за сравнение с единичкой?
|
|||
3
Cyberhawk
11.04.18
✎
18:32
|
СП тебе в помощь
|
|||
4
Михаил Козлов
11.04.18
✎
18:34
|
Можно воспользоваться штатной обработкой группового изменения реквизитов с произвольным алгоритмом типа:
Для Каждого Стр Из Объект.НачисленнаяЗарплатаИВзносы Цикл стр.Подразделение = стр.Подразделение.Родитель; КонецЦикла; |
|||
5
Мандалай
11.04.18
✎
18:56
|
ПодрСПолнКод=ПодрС.ПолныйКод();
Ты глянь этот метод, может он на клиенте выполняется, а ты на сервере вертишься. |
|||
6
Мандалай
11.04.18
✎
18:58
|
Фу блин, вечер уже.
У тебя точно ПодрС = подразделение? Может Неопределено? Поставь проверку на тип переменной ПодрС. |
|||
7
VladB
11.04.18
✎
19:30
|
Похоже (4), ты прав дорогой. Спасибо большое. Всё получилось.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |