1с как в скд вызвать функцию общего модуля
Ошибка в следующем (точнее баг):
Не знаю воспроизведется ли и знать не хочу. Убил сутки на гугление и чтение документации.
Смысл в том, что система 1С не обновляет что-то внутри себя.
Даю 99%, что баг воспроизведется:
1. Новая конфигурация
2. Новый отчет
3. Новый общий модуль
4. Новое вычисляемое поле
И дойдя до этапа 4 отчет просто не видит общий модуль. Не помогает даже перезапуск 1С.
5. Новый отчет
6. Новое вычисляемое поле
Фантастика. Теперь даже не надо указывать четвертый параметр «Истина» просто потому что всё работает без единой строчки в модуле отчёта.
(1) Для "ПроцессорКомпоновкиДанных" при вызове метода "Инициализировать()" необходимо указать 4 параметр в Истина.
Тип: Булево.
Указывает возможность использования функции общих модулей конфигурации в выражениях компоновки данных.
Значение по умолчанию: Ложь.
В модуле отчёта написал этот код. Выдает всю ту же ошибку.
В чём моя ошибка?
ошибка в первой строке темы
Ошибка в следующем (точнее баг):
Не знаю воспроизведется ли и знать не хочу. Убил сутки на гугление и чтение документации.
Смысл в том, что система 1С не обновляет что-то внутри себя.
Даю 99%, что баг воспроизведется:
1. Новая конфигурация
2. Новый отчет
3. Новый общий модуль
4. Новое вычисляемое поле
И дойдя до этапа 4 отчет просто не видит общий модуль. Не помогает даже перезапуск 1С.
5. Новый отчет
6. Новое вычисляемое поле
Фантастика. Теперь даже не надо указывать четвертый параметр «Истина» просто потому что всё работает без единой строчки в модуле отчёта.
(6) Подтверждаю, встречался не раз. При добавлении новых вычисляемых полей приходилось переименовывать отчеты.
(6) В моем случае это было объяснимо:
Регистр Сведений МакетыКомпоновкиДанных
В нем были отчеты, в которых встречался подобный "Баг". Вручную регистр не очищается, можно программно.
МакетКомпоновкиДанных = МакетКомпоновкиДанныхОтчета(ОбъектОтчета, КлючВарианта);
КонецЕсли;
- оставлена строка лишь "МакетКомпоновкиДанных = Неопределено;" - остальное закомментировано.
Язык выражений СКД похож на язык запросов 1С. Я предполагаю, что с языком запросов 1С читатель знаком. Поэтому постараюсь показать основные отличия. Чтобы можно было быстрее начать использовать все дополнительные возможности языка выражений системы компоновки данных.
1. Где используется язык выражений Системы Компоновки Данных
Язык выражений СКД в 1С используется как правило в конструкторе системы компоновки данных. Еще его можно использовать при программном изменении СКД:
- Выражения представления (Наборы данных)
- Выражения упорядочивания (Наборы данных)
- На закладке «Вычисляемые поля», в колонке «Выражение».
- На закладке «Параметры», в колонке «Выражение».
- На закладке «Настройки», в колонке «Пользовательские поля».
2. Синтаксис языка выражений СКД в 1С
Выражения оперируют параметрами, передаваемыми в СКД. Например, &МассивЧисел, литералами и полями, полученными из источника данных, например, из запроса.
В простейшем случае выражение является ссылкой на поле источника данных.
Выражения описываются при помощи следующих операций (как в языке запросов):
· Разыменование поля – обращение к полю через точку, например, Организация.ИНН
· Приведение типа – для составных полей, например:
ВЫРАЗИТЬ(Регистратор КАК Документ.АвансовыйОтчет).Дата
· Операция В – проверка на вхождение элемента в коллекцию значений
· Функции языка выражений СКД в 1С 8.3
Здесь все организовано, как и в языке запросов 1С: строка, число, дата, булево, тип.
Для указания не примитивных типов, следует использовать ключевое слово
3. Использование функций общих модулей 1С в языке выражений СКД
В языке выражений есть возможность использовать функции из общих модулей 1С.
Естественно, это работает только с экспортными функциями.
Если свойство модуля – «глобальный» не установлено, то к функции следует обращаться, с указанием названия модуля:
Если галочка поставлена, то можно обращаться к функции, без указания названия модуля.
При программном формировании отчета на СКД необходимо разрешить использование функций модулей:
4. Описание функций языка выражений Системы Компоновки Данных
Вычислить(Выражение, Группировка, ТипРасчета)
Вместо неё рекомендуется использовать функцию «ВычислитьВыражение».
Она предназначена для вычисления выражения в контексте некоторой группировки.
Функция учитывает отбор группировок, но не учитывает иерархические отборы.
Данная функция возвращает строковое представление переданного значения не примитивного типа. Для значений примитивного типа возвращает само значение.
Если в качестве параметра используется массив или таблица значений, то функция возвращает строку, содержащую строковые представление всех элементов массива, разделенных символами "; ". Если у какого-либо элемента строковое представление пустое, то вместо его представления выводится строка "".
Данная функция преобразует переданное значение в строку.
Если в качестве параметра используется массив или таблица значений, то функция возвращает строку, содержащую строковые представление всех элементов массива, разделенных символами "; ". Если у какого-либо элемента строковое представление пустое, то вместо его представления выводится строка "".
-ТипЗначения – то же, что в языке запросов
5. Описание языка выражений СКД в конфигураторе
Найти описание языка выражений СКД 1С можно в синтакс-помощнике в конфигураторе по кнопке F1.
- Система компоновки данных → Язык выражений системы компоновки данных.
Также некоторые примеры применения языка выражений СКД есть в книге
Хрусталева Е.Ю. «Разработка сложных отчетов в 1С:Предприятие 8» (1С.Библиотека разработчика) - 2016
Специалист компании ООО «Кодерлайн»
Вас могут заинтересовать следующие статьи:
94 [PROP_CODE] => TAGS2 [TITLE] => Вас могут заинтересовать следующие семинары: ) --> 95 [PROP_CODE] => TAGS [TITLE] => Вас могут заинтересовать следующие вебинары: ) -->
Вас могут заинтересовать следующие вебинары:
Язык выражений СКД похож на язык запросов 1С. Я предполагаю, что с языком запросов 1С читатель знаком. Поэтому постараюсь показать основные отличия. Чтобы можно было быстрее начать использовать все дополнительные возможности языка выражений системы компоновки данных.
1. Где используется язык выражений Системы Компоновки Данных
Язык выражений СКД в 1С используется как правило в конструкторе системы компоновки данных. Еще его можно использовать при программном изменении СКД:
- Выражения представления (Наборы данных)
- Выражения упорядочивания (Наборы данных)
- На закладке «Вычисляемые поля», в колонке «Выражение».
- На закладке «Параметры», в колонке «Выражение».
- На закладке «Настройки», в колонке «Пользовательские поля».
2. Синтаксис языка выражений СКД в 1С
Выражения оперируют параметрами, передаваемыми в СКД. Например, &МассивЧисел, литералами и полями, полученными из источника данных, например, из запроса.
В простейшем случае выражение является ссылкой на поле источника данных.
Выражения описываются при помощи следующих операций (как в языке запросов):
· Разыменование поля – обращение к полю через точку, например, Организация.ИНН
· Приведение типа – для составных полей, например:
ВЫРАЗИТЬ(Регистратор КАК Документ.АвансовыйОтчет).Дата
· Операция В – проверка на вхождение элемента в коллекцию значений
· Функции языка выражений СКД в 1С 8.3
Здесь все организовано, как и в языке запросов 1С: строка, число, дата, булево, тип.
Для указания не примитивных типов, следует использовать ключевое слово
3. Использование функций общих модулей 1С в языке выражений СКД
В языке выражений есть возможность использовать функции из общих модулей 1С.
Естественно, это работает только с экспортными функциями.
Если свойство модуля – «глобальный» не установлено, то к функции следует обращаться, с указанием названия модуля:
Если галочка поставлена, то можно обращаться к функции, без указания названия модуля.
При программном формировании отчета на СКД необходимо разрешить использование функций модулей:
4. Описание функций языка выражений Системы Компоновки Данных
Вычислить(Выражение, Группировка, ТипРасчета)
Вместо неё рекомендуется использовать функцию «ВычислитьВыражение».
Она предназначена для вычисления выражения в контексте некоторой группировки.
Функция учитывает отбор группировок, но не учитывает иерархические отборы.
Данная функция возвращает строковое представление переданного значения не примитивного типа. Для значений примитивного типа возвращает само значение.
Если в качестве параметра используется массив или таблица значений, то функция возвращает строку, содержащую строковые представление всех элементов массива, разделенных символами "; ". Если у какого-либо элемента строковое представление пустое, то вместо его представления выводится строка "".
Данная функция преобразует переданное значение в строку.
Если в качестве параметра используется массив или таблица значений, то функция возвращает строку, содержащую строковые представление всех элементов массива, разделенных символами "; ". Если у какого-либо элемента строковое представление пустое, то вместо его представления выводится строка "".
-ТипЗначения – то же, что в языке запросов
5. Описание языка выражений СКД в конфигураторе
Найти описание языка выражений СКД 1С можно в синтакс-помощнике в конфигураторе по кнопке F1.
- Система компоновки данных → Язык выражений системы компоновки данных.
Также некоторые примеры применения языка выражений СКД есть в книге
Хрусталева Е.Ю. «Разработка сложных отчетов в 1С:Предприятие 8» (1С.Библиотека разработчика) - 2016
Специалист компании ООО «Кодерлайн»
Вас могут заинтересовать следующие статьи:
94 [PROP_CODE] => TAGS2 [TITLE] => Вас могут заинтересовать следующие семинары: ) --> 95 [PROP_CODE] => TAGS [TITLE] => Вас могут заинтересовать следующие вебинары: ) -->
Вас могут заинтересовать следующие вебинары:
Язык выражений СКД похож на язык запросов 1С. Я предполагаю, что с языком запросов 1С читатель знаком. Поэтому постараюсь показать основные отличия. Чтобы можно было быстрее начать использовать все дополнительные возможности языка выражений системы компоновки данных.
1. Где используется язык выражений Системы Компоновки Данных
Язык выражений СКД в 1С используется как правило в конструкторе системы компоновки данных. Еще его можно использовать при программном изменении СКД:
- Выражения представления (Наборы данных)
- Выражения упорядочивания (Наборы данных)
- На закладке «Вычисляемые поля», в колонке «Выражение».
- На закладке «Параметры», в колонке «Выражение».
- На закладке «Настройки», в колонке «Пользовательские поля».
2. Синтаксис языка выражений СКД в 1С
Выражения оперируют параметрами, передаваемыми в СКД. Например, &МассивЧисел, литералами и полями, полученными из источника данных, например, из запроса.
В простейшем случае выражение является ссылкой на поле источника данных.
Выражения описываются при помощи следующих операций (как в языке запросов):
· Разыменование поля – обращение к полю через точку, например, Организация.ИНН
· Приведение типа – для составных полей, например:
ВЫРАЗИТЬ(Регистратор КАК Документ.АвансовыйОтчет).Дата
· Операция В – проверка на вхождение элемента в коллекцию значений
· Функции языка выражений СКД в 1С 8.3
Здесь все организовано, как и в языке запросов 1С: строка, число, дата, булево, тип.
Для указания не примитивных типов, следует использовать ключевое слово
3. Использование функций общих модулей 1С в языке выражений СКД
В языке выражений есть возможность использовать функции из общих модулей 1С.
Естественно, это работает только с экспортными функциями.
Если свойство модуля – «глобальный» не установлено, то к функции следует обращаться, с указанием названия модуля:
Если галочка поставлена, то можно обращаться к функции, без указания названия модуля.
При программном формировании отчета на СКД необходимо разрешить использование функций модулей:
4. Описание функций языка выражений Системы Компоновки Данных
Вычислить(Выражение, Группировка, ТипРасчета)
Вместо неё рекомендуется использовать функцию «ВычислитьВыражение».
Она предназначена для вычисления выражения в контексте некоторой группировки.
Функция учитывает отбор группировок, но не учитывает иерархические отборы.
Данная функция возвращает строковое представление переданного значения не примитивного типа. Для значений примитивного типа возвращает само значение.
Если в качестве параметра используется массив или таблица значений, то функция возвращает строку, содержащую строковые представление всех элементов массива, разделенных символами "; ". Если у какого-либо элемента строковое представление пустое, то вместо его представления выводится строка "".
Данная функция преобразует переданное значение в строку.
Если в качестве параметра используется массив или таблица значений, то функция возвращает строку, содержащую строковые представление всех элементов массива, разделенных символами "; ". Если у какого-либо элемента строковое представление пустое, то вместо его представления выводится строка "".
-ТипЗначения – то же, что в языке запросов
5. Описание языка выражений СКД в конфигураторе
Найти описание языка выражений СКД 1С можно в синтакс-помощнике в конфигураторе по кнопке F1.
- Система компоновки данных → Язык выражений системы компоновки данных.
Также некоторые примеры применения языка выражений СКД есть в книге
Хрусталева Е.Ю. «Разработка сложных отчетов в 1С:Предприятие 8» (1С.Библиотека разработчика) - 2016
Специалист компании ООО «Кодерлайн»
Вас могут заинтересовать следующие статьи:
94 [PROP_CODE] => TAGS2 [TITLE] => Вас могут заинтересовать следующие семинары: ) --> 95 [PROP_CODE] => TAGS [TITLE] => Вас могут заинтересовать следующие вебинары: ) -->
Вас могут заинтересовать следующие вебинары:
Общие модули предназначены для содержания общих алгоритмов конфигурации, которые доступны из разных модулей конфигурации. В общих модулях отсутствует раздел определения переменных и раздел основной программы, то есть они должны содержать только процедуры и функции.
Если используется клиент–серверный вариант работы системы 1С:Предприятие 8, то с помощью свойств Клиент (обычное приложение), Клиент (управляемое приложение) и Сервер, а также указаний препроцессору разработчик может организовывать выполнение различных процедур и функций общих модулей в контексте сервера или в контексте клиента.
![]() |
1. Пример общего модуля |
Описание свойств
Если установлено свойство Клиент (обычное приложение) или Клиент (управляемое приложение), то все процедуры и функции общего модуля могут использоваться в клиентском приложении. В контексте неглобального общего модуля с установленным свойством Клиент (обычное приложение) доступны экспортируемые переменные, процедуры и функции модуля обычного приложения. В контексте неглобального общего модуля с установленным свойством Клиент (управляемое приложение) доступны экспортируемые переменные, процедуры и функции модуля управляемого приложения.
Если установлено свойство Сервер, то все процедуры и функции общего модуля могут использоваться в клиент-серверном варианте.
Если установлено свойство Внешнее соединение, то все процедуры и функции общего модуля могут быть использованы во внешнем соединении. В контексте неглобального общего модуля с установленным свойством Внешнее соединение доступны экспортируемые переменные, процедуры и функции модуля внешнего соединения.
Свойство Вызов сервера разрешает вызов сервера. Свойство доступно, если установлено свойство Сервер. Если данное свойство не установлено, то процедуры и функции данного модуля доступны только на сервере, иначе процедуры и функции доступны на клиенте.
Свойство Привилегированный предназначено для установки полных прав доступа при выполнении действий с базой данных в процедурах и функциях общего модуля. При установленном свойстве выполнение производится только на сервере.
Читайте также: