Аналог case..swith в 1С

Вот такую конструкцию в 1С можно считать аналогом  операторов case…swith в других языках:

Именованный массив в 1С

Ну собственно его нет в 1с. Есть некий «аналог», понятие «Структура».

Инициализируется например вот так:

Причем ключ не должен содержать пробелов и цифр в начале.

К проинициализированной структуре можно обращаться по ключу например так:

Проверка наличия ключа осуществляется так:

Но я в своей практике, немножко по другому поступил, когда мне была не известна заведомо структура:

 

Изменяем функционал документа 1С без изменения конфигурации (Расширением)

В очередной раз понадобилась доработка одного из документов 1С, а именно, чтобы при проведении документа, выводилось некое модальное окно, с вопросами менеджеру который этот документ проводит. А так как я противник какого либо изменения стандартной конфигурации (кушано достаточно с обновлениями) не по делу, то решил попробовать вариант с «расширениями».

Итак, сначала создаем регистр сведений, куда собственно будем заносить информацию которую будет заполнять менеджер. Привязка — к документу реализации:

Далее создадим расширение, через меню Конфигруация — Расширения конфигурации:

Переносим форму документа «Реализация товаров» в раширения:

В появившемся редакторе расширений, видим форму, с не заполненными действиями в командах формы. Если мы попробуем создать действие, выведется вопрос:

, когда вызывать данное действие, ДО, ПОСЛЕ ил ВМЕСТО. В моем случае, я выбрал ДО, и вписал в обработчик следующий код:

При нажатии кнопки «Провести» теперь выскакивает окно:

Ну и соответственно пишет в регистр информацию для размышления:

1С: «Ограничение прав доступа» при удаление объекта справочника

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

После того как дал права на этот регистр, всё заработало…

Программная проверка пользователя 1С

Есть тысяча способов ограничить пользователя в 1С. Самый простой, если часть кода самописная, это «жесткая» привязка к конкретным пользователям. Например это можно сделать так:

1 12 13 14 15 16 29