Без рубрики

Синхронизация дерева значений и таблицы значений

Задача: необходимо отображать данные на управляемой форме документа в двух видах – дерева значений и таблицы значений, причем на разных страницах. Данные для дерева получаются с помощью запроса к таблице значений из объекта. Пользователь работает с деревом значений, изменяя значения в структуре дерева по своему усмотрению: добавляет комментарии, меняет статусы по строкам и т.д., при этом синхронно должны производиться аналогичные изменения в таблице формы на соседней странице, т.к. именно она является основным источником данных для формирования дерева. Данную задачу можно решить с использованием синхронизации данных между деревом значений и таблицы значений по уникальному идентификатору (далее – УИ) каждой конкретной строки. Чтобы это корректно работало, требуется единый источник для УИ, т.е. для дерева и таблицы будут использованы одинаковые УИ. Остаётся открытым вопрос – нужно ли хранить их в базе данных? Здесь уже на ваше личное усмотрение:… Подробнее »Синхронизация дерева значений и таблицы значений

Как связать несколько документов, создаваемых программно, если нет документа-основания?

Представим, что циклом мы обходим некую таблицу значений, на основании данных которой программно формируем целый пакет документов – например, заявок на расходование денежных средств. В данном случае, нам не подойдёт классический способ использования реквизита ДокументОснование, т.к. набор создаваемых документов не имеет никакого головного объекта. Вот некоторые способы решения задачи: 1. Связь через общий реквизит (например, пакет или идентификатор) Можно добавить в каждый документ реквизит, который будет идентифицировать этот пакет документов. Например, это может быть уникальный идентификатор (UUID), создаваемый для каждого пакета при генерации документов. Все документы в пакете будут иметь одно и то же значение этого реквизита, что позволит связать их между собой. Пошагово: 1. В каждом документе добавьте реквизит типа “Строка” (или другой подходящий тип), который будет хранить идентификатор пакета. 2. При программном создании документов создайте уникальный идентификатор и присвойте его каждому документу. В… Подробнее »Как связать несколько документов, создаваемых программно, если нет документа-основания?

Оптимизация запроса с помощью функции языка запросов «ВЫРАЗИТЬ»

Давайте представим ситуацию, когда из регистра накопления «ТоварыНаСкладах» нам необходимо выбрать регистратор, являющийся составным полем: А теперь представим себе запрос, в котором мы выбираем регистратор и два его подчиненных поля – «Номер» и «Дата»: Результатов выполнения запроса будет следующая таблица: Когда мы выбираем номер и дату, система начинает перебирать все таблицы, которые являются регистраторами – “Продажи”, “Поступления”, а также третий документ, который не влез на скриншот – “Перемещение”. Получается достаточно сложный запрос, когда мы пытаемся разыменовать (обратиться через точку) поле составного типа. Его сложную структуру можно отдельно посмотреть в консоли запросов, поддерживающей план выполнения запроса – там мы увидим запрос в виде SQL. Если же нам необходимы данные из регистра только лишь по документу “РеализацияТовара”, то мы можем с помощью функции “ВЫРАЗИТЬ” получать номер и дату только для нужного документа: В результате мы не будем… Подробнее »Оптимизация запроса с помощью функции языка запросов «ВЫРАЗИТЬ»

ERP 2.5.12 Ошибка “не указаны источники данных, необходимые для проверки дат запрета”

Для решения данной проблемы необходимо в процедуру общего модуля “ДатыЗапретаИзмененияПереопределяемый “ЗаполнитьИсточникиДанныхДляПроверкиЗапретаИзменения()” добавить следующий код: Можно реализовать с помощью расширения, добавив расширение процедуры с типом “ИзменениеИКонтроль”.