Перебір всіх елементів довідника з ієрархії
Перебрати всі елементи довідника досить просте завдання, яке можна реалізувати в 1с-ку декількома способами, найпростіший використовувати команду «Вибірка», як показано у вбудованому помічнику, я трохи стисну код для наочності
На виході ми отримаємо перебір всіх елементів відсортованих за основним поданням довідника, або можна вказати інший порядок сортування, за найменуванням, за кодом, або за будь-яким іншим реквізитом у якого ознака індексування встановлена в значення "Індексувати" або в значення "Індексувати з дод. .", здавалося б, що цього вистачить на всі випадки життя. Зараз, як видно з тематики моїх статей, я знаюся на мобільному додатку 1с для андроїда, і виникла необхідність обміну даними з основною конфігурацією, для цього потрібно якось перекинути довідники в мобільний додаток. Оскільки з планами обміну я ще не стикався (сором мені і ганьба) було вирішено використовувати обмін даними через електронну пошту, і простий текстовий формат. Здавалося б, перебрав всі елементи довідника, потрібні реквізити записав у вигляді рядка «код; найменування; це група; батько; але виник один нюанс: припустимо у мене структура довідника. Номенклатура наступна:
Якщо вивантажувати номенклатуру за кодами, а потім відповідно завантажувати ми не зможемо записати номенклатуру з кодом 110, оскільки один з реквізитів – «Батько» посилатиметься на неіснуючу ще папку «Аксесуари» з кодом 147. Аналогічна ситуація може виникнути якщо вивантажувати номен найменування чи будь-якому іншому реквізиту. Що ж робити і як із цим боротися? Працюють якось стандартні вивантаження-завантаження і навіть не заїкаються про подібну проблему? надопомога прийде мову запитів із відповідним параметром сортування даних. Просто в запит потрібно додати поле з посиланням на елемент, а потім вказати, що сортування буде за ієрархією.
Результат виконання запиту буде наступним: