Расширения конфигурации 1С : Как сохранять данные

Расширение не предназначено для хранения важных данных и тем более данных, влияющих на учет. Но настройки сохранять нужно. Для этого можно воспользоваться хранилищем общих настроек или сохранением данных формы: а) Сохранение данных формы В редактируемой форме можно установить свойство — “АвтоматическоеСохранениеДанныхВНастройках” в «Использовать» и поставить флаг «Сохранение» над нужными реквизитами. Это позволит сохранять значения реквизитов типовым механизмом платформы:

Read more

Расширения конфигурации 1С : Как писать запросы без импорта объектов в расширение

Расширение видит и работает только с теми объектами, которые заимствованы из основной конфигурации. Объекты, которые не заимствованы, в расширении не видны и при попытке обращения к ним, например, в тексте запроса, в режиме “Конфигуратор” вызывают ошибку. Хотя в пользовательском режиме код выполняется без проблем. Для того чтобы писать или редактировать запросы с большим количеством метаданных лучше воспользоваться любой внешней обработкой. В ней доступны все метаданные из основной конфигурации:

Read more

Расширения конфигурации 1С : Как подключить отладку

В типовых конфигурациях на основе библиотеки стандартных подсистем (БСП) при отладке расширений встречается вот такое страшное сообщение «При выполнении операции над расширением возникла ошибка»: Оно возникает если в конфигураторе открыто наше расширение и лечится только закрытием окна расширения. Для того, чтобы подключить отладку в расширении следует использовать ключ командной строки — “РежимОтладки” Это упрощает отладку кода. В частности:

Read more

Расширения конфигурации 1С : Создание и использование общего модуля, модуля менеджера или модуля объекта (устарело)

На текущий момент механизм расширений не позволяет создавать или заимствовать общие модули, модули менеджера и модули объектов (уже позволяет 🙂 ). Но в обработке, включенной в состав конфигурации, доступен модуль менеджера и к нему можно обращаться:

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

Read more

Расширения конфигурации 1С : Последовательность выполнения обработчиков

Если в расширении переопределить событие или команду, то по умолчанию сначала выполняется обработчик из расширения, а затем обработчик типовой конфигурации. Это не всегда удобно, например, когда какие-то операции следует выполнить после типовых обработчиков. Рассмотрим примеры, которые позволяют изменить эту последовательность: а) Выполнить сначала типовой код, затем код из расширения:

б) Выполнить сначала код из расширения, затем типовой код, затем опять код из расширения

Read more

Расширения конфигурации 1С : Показать/скрыть неизмененные объекты

При добавлении новых объектов в расширение также автоматически добавляются связанные объекты. В результате в метаданных расширения скапливается много служебных объектов. Для того, чтобы показать только измененные объекты есть кнопка “Измененные и добавленные в расширении”. При нажатии отображаются только добавленные вручную и измененные объекты расширения. Принцип её работы показан ниже:

Read more

Программное получение системной информации о компьютере и конфигурации в 1С

В 1С предусмотрена возможность программного получения свойств конфигурации и некоторых технических характеристик компьютера, на котором работает платформа. В статье описывается этот функционал. Для получения характеристик компьютера предназначен объект СистемнаяИнформация:

Пример выводимых данных:

Внимание! Объект СистемнаяИнформация доступен как на клиенте, так и на сервере. Будет получена информация о том компьютере, на чьей стороне выполняется код.

Read more

Особенность работы конструкции дополнения дат в запросе

В случае если поле, по которому рассчитываем итоги, является полем типа Дата, то возможно дополнение результатов датами в заданном периоде. Делается это при помощи ключевого слова ПЕРИОДАМИ, после которого в скобках указывается вид периода (одно из СЕКУНДА, МИНУТА, ЧАС, ДЕНЬ, НЕДЕЛЯ, МЕСЯЦ, КВАРТАЛ, ГОД, ДЕКАДА, ПОЛУГОДИЕ), начальная и конечные даты интересуемого периода. В случае если начальные и конечные даты не указаны, будут использованы первая и последняя даты, участвующие в результате. Допустим, мы написали запрос с дополнением дат:

  Если выполнить запрос в консоли запросов, то никакого дополнения дат мы не увидим, хотя запрос написан верно. Особенность дополнения дат в том, что эта конструкция работает только при обходе результата запроса, а консоль запросов применяет метод Выгрузить() к результату запроса и никакого дополнения не происходит. Пример №1 — выгрузка результата запроса в дерево значений (ДанныеФормыДерево)

  В данном примере дополнение дат не произойдет, т.к. происходит выгрузка результата запроса. Функция ПолучитьТекстЗапроса() возвращает выше приведенный текст запроса. Пример №2 — обход результата запроса с последующей загрузкой в дерево значений (ДанныеФормыДерево)

  В данном примере производиться обход результата запроса, причем указывается как должна получаться выборка, с помощью передачи параметров в метод Выбрать(). В этом примере будет производиться дополнение дат.

Read more

СКД. Программное чтение/запись СКД в/из XML

Объект типа СхемаКомпоновкиДанных не имеет в своем арсенале метода записи/чтения себя в/из XML. Но все исправимо благодаря возможности сериализации схемы компоновки данных в объект XDTO.

Сериализация объектов 1С выполняется с помощью объекта глобального контекста СериализацияXDTO — это сериализатор XDTO, соответствующий глобальной фабрики XDTO.

Read more

1С 8.3 : Функции языка выражений системы компоновки данных (СКД) Выразить, ЕстьNull…

Выразить (Cast) — данная функция предназначена для выделения типа из выражения, которое может содержать составной тип. В случае, если выражение будет содержать тип, отличный от требуемого типа, будет возвращено значение NULL. Синтаксис:

Параметры: Выражение — преобразуемое выражение;  УказаниеТипа (Строка). Содержит  строку типа. Например, «Число», «Строка» и т.п. Кроме примитивных типов данная строка может содержать имя таблицы. В этом случае будет осуществлена попытка выразить к ссылке на указанную таблицу. Пример:

ЕстьNull (IsNull) — данная функция возвращает значение второго параметра в случае, если значение первого параметра NULL. В противном случае будет возвращено значение первого параметра. Синтаксис:

Параметры:

Read more

1С 8.3 : Функции языка выражений системы компоновки данных (СКД)

Уровень (Level) — функция предназначена для получения текущего уровня записи. Синтаксис:Уровень() Пример:Уровень() НомерПоПорядку (SequenceNumber) — получить следующий порядковый номер. Синтаксис:НомерПоПорядку() Пример:НомерПоПорядку() НомерПоПорядкуВГруппировке (SequenceNumberInGrouping) — возвращает следующий порядковый номер в текущей группировке. Пример:НомерПоПорядкуВГруппировке() Формат (Format) — получить отформатированную строку переданного значения. Синтаксис:Формат(Значение, ФорматнаяСтрока) Параметры:

Read more

1С 8.3 : Функции языка выражений системы компоновки данных (СКД) ВычислитьВыражениеСГруппировкойМассив, ВычислитьВыражениеСГруппировкойТаблицаЗначений

ВычислитьВыражениеСГруппировкойМассив (EvalExpressionWithGroupArray) — функция возвращает массив, каждый элемент которого содержит результат вычисления выражения для группировки по указанному полю. Синтаксис:

Параметры: Выражение (Строка) — выражение, которое нужно вычислить. Например, «Сумма(СуммаОборот)»; ВыраженияПолейГруппировки — выражения полей группировки, перечисленные через запятую. Например, «Контрагент, Партия»; ОтборЗаписей — выражение, применяемое к детальным записям. Например, «ПометкаУдаления = Ложь». Если в данном параметре используется агрегатная функция, то при выполнении компоновки данных возникнет ошибка; ОтборГруппировок — отбор, применяемый к групповым записям. Например: «Сумма(СуммаОборот) > &Параметр1». Пример:

Read more

1С 8.3 : Функции языка выражений системы компоновки данных (СКД) Вычислить, ВычислитьВыражение

Вычислить (Eval) — предназначена для вычисления выражения в контексте некоторой группировки. Функция используется для совместимости с предыдущими версиями платформы. Вместо неё рекомендуется использовать функцию ВычислитьВыражение. Синтаксис:

  Параметры:  Выражение (Строка). Cодержит вычисляемое выражение;  Группировка (Строка). Содержит имя группировки, в контексте которой необходимо вычислить выражение. В случае если в качестве имени группировки используется пустая строка, вычисление будет выполнено в контексте текущей группировки. В случае если в качестве имени группировки будет использована строка ОбщийИтог, вычисление будет выполнено в контексте общего итога. В остальных случаях вычисление будет выполняться в контексте родительской группировки с таким именем.Например:

В данном примере в результате получится отношение суммы по полю «Продажи.СуммаОборот» записи группировки к сумме того же поля во всей компоновке. ТипРасчета (Строка). В случае если данный параметр имеет значение «ОбщийИтог», выражение будет вычисляться для всех записей группировки. В случае если значение параметра «Группировка», значения будут вычисляться для текущей групповой записи группировки.

Read more

Необходимо обеспечить отражение документов в некотором учете строго последовательно. При этом прогнозируется высокая параллельность работы. Какой вариант реализации выбрать для уменьшения числа возможных проблем параллельной работы?

Использовать последовательности, но отключить движение границы последовательности при проведении документов. Восстанавливать работу с последовательностью в фоне.

Read more

В неразделенном режиме низкая производительность информационной системы, использующей независимое и совместное разделение данных, для пользователей, имеющих доступ ко всем областям данных, обусловлена:

Отсутствием подходящих индексов в СУБД, т.к. разделитель идёт первым полем для всех индексов таблиц разделённых данных, и для таких пользователей чтение разделённых данных всегда будет происходить сканированием таблиц.

Read more

Можно ли выполнять подсчет и анализ клиент-серверных вызовов с помощью замера производительности в конфигураторе?

Да, но нужно учитывать, что этот режим показывает только вызовы, которые выполняются непосредственно в ходе выполнения модулей и не показывает вызовы, которые выполняются платформой вне выполнения модулей.

Read more