Программирование

Объект не найден или не доступен по RLS.

Для любой ссылки всего три варианта существования объекта.
1) объект существует
2) объект не найден
3) объект существует, но к нему нет доступа по RLS
По мнению коллег наилучший способ определить для ссылки к какому из трех вариантов она относится это
в попытке выполнить запрос на получение данных ссылка на которые равна проверяемой.
Если результат пустой, то объект не найден. Если есть результат, то объект существует.
Если произошло исключение, то система RLS не дает доступ.
Пока ничего не проверял, если у кого есть комментарии прошу написать.

Форма без объекта

Вот таким кодом

НачатьТранзакцию();
   
Справочники.Справочник1.СоздатьЭлемент().ПолучитьФорму().Открыть();
ОтменитьТранзакцию();


можно получить на экране форму без объекта.
Ее свойства:
- форма записывается, но не создает элемент справочника

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

Если по какой-то причине вам потребовалось выполнить что-то только при интерактивном проведении в обработке проведения, то вот такой код поможет определить интерактивный режим проведения.

Если нужно скопировать настройки одной роли в другую

Появилась задача скопировать настройки роли СпециалистСбыта_РуководительГруппы в СпециалистСбыта_РуководительОтдела.

Самый простой способ:

1) делам копию конфигурации и загружаем в пустую базу
2) в копии переименовываем
СпециалистСбыта_РуководительОтдела -> СпециалистСбыта_РуководительОтдела_
СпециалистСбыта_РуководительГруппы -> СпециалистСбыта_РуководительОтдела
3) выгружаем конфигурацию из копии
4) делаем сравнение и объединение с основной базой, указываем только одну нашу роль

Переменные модуля приложений

Переменные модуля приложений удобно использовать для хранения данных доступных всем объектам на клиентской стороне. Но при переводе функционала, использующего переменные модуля приложений, на серверную часть(например для выполнения в фоновом задании). Мы столкнемся с необходимостью замены этих переменных чем-то другим, а именно параметрами сеанса. При этом для хранения коллекций(структура, соответствие и т.д.) нам придется создавать ПараметрСеанса типа ХранилищеЗначений и оперировать его методами.

Универсальный обмен данными XML (загрузка)

Ранее мы рассмотрели как организовать выгрузку данных используя обработку "Универсальный обмен данными XML", для случая файлового обмена (в отличие от обмена через COM) необходимо обеспечить его приемку на стороне приемника.
Далее код:

Универсальный обмен данными XML (выгрузка)

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

Запись файла на FTP сервер с архивацией ZIP из 1С 8.1,8.2

Представляю кусок готового кода записывающего файл, архивированный ZIP, на FTP сервер, который вы легко адаптируете под себя:

Агрегатная функция МАКСИМУМ от ссылки

В практике встретилась такая задачка: хочется видеть по каждой статье последний документ в ТЧ которго она встречалась.

Набросал запрос:

ВЫБРАТЬ
МАКСИМУМ(трнБюджетнаяОперацияТЧ.Ссылка) КАК Ссылка,
трнБюджетнаяОперацияТЧ.Статья КАК Статья
ИЗ
Документ.трнБюджетнаяОперация.ТЧ КАК трнБюджетнаяОперацияТЧ
ГДЕ
трнБюджетнаяОперацияТЧ.Ссылка.Проведен = ИСТИНА

СГРУППИРОВАТЬ ПО
трнБюджетнаяОперацияТЧ.Статья

Казалось бы всё верно, ан-нет. Оказалось что МАКСИМУМ не дает последний документ.
Пришлось извернуться по совету коллег:

ВложЗапрос2.Статья,

Модифицированность формы

Свойство Модифицированность имеет смысл только в процедуре ПередЗаписью, в процедуре ПриЗаписи это свойство имеет значение Ложь. Будьте внимательнее!

Справочники

Документы

Отчеты

Обработки

RSS-материал