Top.Mail.Ru
Заказать консультацию
специалиста 1С
Отправить заявку

ИнфоСофт использует файлы «cookie» с целью персонализации сервисов и повышения удобства пользования веб-сайтом. Вы можете запретить обработку сookies в настройках браузера. Пожалуйста, ознакомьтесь с политикой использования cookies.
Оставаясь на сайте, вы соглашаетесь с политикой использования cookies.

Почему переменная становится данными ссылочного типа?

Палкина Юлия Посмотреть все статьи >> Специалист по внедрению 1С франчайзинговой сети "ИнфоСофт".
15.01.2026
7
Время прочтения - 4 мин.
Заказать консультацию

Сокращения:

1С:УПП – конфигурация 1С:Управление производственным предприятием.

1С:ЗУП – конфигурация 1С:Зарплата и управление персоналом.

Исходные данные:

Готовая обработка, которая осуществляет перенос данных из 1С:УПП в 1С:ЗУП. Выгрузка и загрузка осуществляется без отбора по организации. Обработка написана сторонними разработчиками, т.е. мы не знаем заранее код обработки.

Задача:

Необходимо доработать обработку так, чтобы можно было осуществлять отбор по организации.

 

Решение задачи

1. Добавим в обработку реквизит Организация

1.png
2.png

2. Добавим на форму реквизит Организация

3.png

4.png

3. Найдем в коде обработки процедуру, отвечающую за выгрузку по всем организациям, и добавим свой отбор по одной организации.

5.png

       Тестирование решения

1. При тестировании решения будем выгружать не всю информацию, а только Организации и подразделения. Для этого устанавливаем дополнительные настройки обработки.

6.png

2. Нажимаем кнопку выгрузить и получаем ошибку.

7.png


Расследование ошибки

Запускаем отладку. Анализируем код обработки.

1. Общая процедура ОрганизацииПодразделенияВыгрузка запускает весь процесс выгрузки. Далее процедура Организации_Выгрузка запускает выгрузку всех организаций с параметром отбор по организациям.

8.png

2. После получается выборка данных по организациям. В отладчике видно, что действительно отбор по организации работает, тип элемента справочник ссылка «Организации».

2.1

9.png

2.2

10.png

3. Далее идем по ходу выполнения кода, доходим до переменной РегистрацияВНалоговомОргане (похоже на переменную в ошибке).

 11.png

4. Закомментируем часть кода, чтобы убедиться, точно ли причина ошибки находится в данной фрагменте. Проверяем. Получаем другую ошибку, но похожую по ходу исполнения кода обработки. 

12.png

5. Ставим точку останова в самом начале функции ОрганизацииВыборкаДанных. Анализируем код.

РегистрацияВНалоговомОргане и КонтактнаяИнформация – это части многострочной строки.

13.png

6. Результат запроса получает информацию по в соответствии со СтрокаОписаниеОрганизации. Далее из выборки результата запроса заполняется структура Организация. А мы помним, что в обработку добавили реквизит Организации, и код обработки находится в модуле объекта.

14.png

7. Вычислим выражение Организация. В переменной Организация объявлена структура, но по факту эта переменная имеет тип СправочникСсылка.Организации. Данная переменная распознается программой, как значение реквизита объекта обработки Организация. Соответственно – это ошибка объявления - «именования» переменной. 

15.png

8. Изменим переменную Организация на Организация_ и попробуем повторить выгрузку.

16.png,

9. Ошибка решена, выгрузка прошла успешно. 

17.png


Выводы

На данном примере показано:

  • Почему переменная, которой присваивается тип данных структура, вдруг становится данными ссылочного типа.

  • Как просто «сломать» всю логику кода, написанную сторонними разработчиками.  

  • Как очень просто расследовать и исправить ошибку.


Заказать консультацию специалиста 1С
Оставьте заявку и наши эксперты проконсультируют вас по данной статье.
Рассказать друзьям
Для разработчиков 1С
Вам может быть интересно: