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

1С:Предприятие :: 1С:Предприятие 8 общая

Помогите с кодом обработки

Помогите с кодом обработки
Я
   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
и далее по каждой строке ТЧ номер кода и не найден

Если она видит номер кода, то какого ляда пишет про ошибку
и почему его не ищет?
Как правильно написать код? Помогите кто может!!
Готов принять любую ругань (критику) в свой адрес.
 
 
   Cyberhawk
 
1 - 11.04.18 - 18:30
НайтиПоКоду не ищет по полному коду
   Cyberhawk
 
2 - 11.04.18 - 18:31
А если даже и ищет, то что за сравнение с единичкой?
   Cyberhawk
 
3 - 11.04.18 - 18:32
СП тебе в помощь
   Михаил Козлов
 
4 - 11.04.18 - 18:34
Можно воспользоваться штатной обработкой группового изменения реквизитов с произвольным алгоритмом типа:
Для Каждого Стр Из Объект.НачисленнаяЗарплатаИВзносы Цикл
    стр.Подразделение = стр.Подразделение.Родитель;
КонецЦикла;
   Мандалай
 
5 - 11.04.18 - 18:56
ПодрСПолнКод=ПодрС.ПолныйКод(); 
Ты глянь этот метод, может он на клиенте выполняется, а ты на сервере вертишься.
   Мандалай
 
6 - 11.04.18 - 18:58
Фу блин, вечер уже.
У тебя точно ПодрС = подразделение?
Может Неопределено?
Поставь проверку на тип переменной ПодрС.
   VladB
 
7 - 11.04.18 - 19:30
Похоже (4), ты прав дорогой. Спасибо большое. Всё получилось.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует