1С: Событие «ПриКопировании» в регистре сведений

А вот не обрабатывает 1С такое событие в регистре сведений, поэтому одним из решений будет обработка параметров формы записи при событии «При создании на сервере». Например так:

Т.е. если это «копирование», то значение заполнено «старыми» данными и их можно перезаписать.

1С: Шпаргалка по работе с таблицей значений

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

Определение типа колонок:

Удаление строк:

Сортировка:

1С: Сохранение логов изменений регистра сведений

Задача: вести журнал логов изменения записей регистра сведений

Решение:

Штатного механизма как в Документа или Справочниках нет (ну собственно и правильно, т.к. запись сейчас есть, через минуту её нет). Потому разработаем собственный механизм. Общий алгоритм будет следующий:

  • при открытии форма регистра — запоминаем структуру и значения данных записи регистра
  • при записи регистра из формы — сравниваем новые данные с охраненными, и при выявлении изменений, записываем оные в отдельный регистр «изменений».

При открытии формы регистра, получаем его структуру из метаданных, и запоминаем значения:

При сохранении данных из формы регистра:

В сам регистр «изменений», пишем так:

1С: Получение текущего пользователя

Постараюсь описать все способы определения текущего пользователя информационной базы. К сожалению от версии к версии БСП способы могут меняться.

Способ № 1

Способ №2

Способ №3

Способ №4

Способ №5

Наиболее актуальный на текущий момент способ №4.

Подключение к фоновым заданиям 1С

Случаются ситуации, что фоновое задание запущенное пользователем, продолжает работать и после выхода самого пользователя из 1С. Как же исключить повторный запуск фонового задания пользователем? Ну и заодно показать текущий прогресс выполнения задания. На самом деле всё оказалось просто. В 1С есть функционал получения полного списка выполняемых в текущий момент фоновых заданий:

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

Т.е. если фоновое уже запущено — то просто получаем его идентификатор и отображаем прогресс бар. Если нет — запускаем

1 2 3 34