- Макет компонування даних — схема побудови звіту, готовий опис побудови звіту, зазначення системи, які потрібно вибрати дані, які побудувати запити. Вказівка процесору компонування формувати звіт певної структури з урахуванням заданих налаштувань. Отже, Схема компонування даних містить загальний опис схеми, а макет компонування даних містить також конкретні налаштування користувача.
Схема = Звіти.ПрайсЛист.ОтриматиМакет("ОсновнаСхемаКомпонівкиДаних"); Налаштування = Схема.УстановкиЗа замовчуванням;
ПроцесорКомпонівки =
Новий ПроцесорКомпонуванняДаних; ПроцесорКомпонівки.Ініціалізувати(Макет);
- Процесор виведення результату - виводить результат роботи, для подання користувачеві,
або в табличний документ, або таблицю значень.
ПроцесорВиводу =
Новий ПроцесорВиводуРезультатуКомпонуванняДанихВТабличнийДокумент; ТабДок =
Новий ТабличнийДокумент; ПроцесорВиводу.Встановити Документ(ТабДок); ПроцесорВиводу.Вивести(ПроцесорКомпонівки);
Результат кожного етапу можна серіалізувати (зберегти) у файл XML. Тоді можна кожен етап формування звіту виконувати різних комп'ютерах.
Що таке схема компонування даних?
Схема компонування даних - Об'єкт вбудованої мови системи 1С:Підприємство «СхемаКомпонівкиДаних».
Ще можна назвати макетом спеціального типу, який може бути створений у будь-якого об'єкта конфігурації 1С Схема компонування даних відповідає поняттю макета, оскільки макет — це об'єкт, що містить різні дані, потрібні відображення вихідної інформації.
З чого складається схема компонування даних?
Набори даних
Джерела даних для наборів даних — це функціонал, що не використовується, створений для вказівки на деякі зовнішні інформаційні бази. Наразі вказують на локальну базу, в якій виконується звіт.
- Запит - Звернення до поточної інформаційної бази для отримання даних.
- Об'єкт - Як об'єкт вибирається: таблиця значень, таблична частина, результат запиту, область осередків табличного документа, документ, набір записів регістра і т.д. Навіщо потрібен набір даних об'єкт? Наприклад, якщо на вході використовуємо таблицю значень, а ній дані з іншої бази (можливо навіть не 1С), то, по суті, ми працюємо даними цієї бази.
- Об'єднання — об'єднує дані із наборів даних: запит та об'єкт. Навіщо потрібен набір даних об'єкт, якщо у запиті існує пропозиція UNION, що дозволяє пов'язати різні дані, тобто об'єднати їх? Цей набір даних необхідний, оскільки в якості набору даних може виступати не лише запит, а також, наприклад, таблиця значень.
Налаштування
- Якщо не вказати жодних налаштувань звіту, тоді в результаті нічого не буде відображено. Досвідчений користувач зможе сам вказати налаштування і тоді результат з'явиться відповідно до його налаштувань. Але краще створити базові налаштування під час розробки звіту.
Напевно, матеріалу на сьогодні достатньо. Новий матеріал обов'язково з'явиться, тож підпишіться на оновлення на нашому сайті, щоб не пропустити! Якщо в чомусь є труднощі, пишіть коментарі. Постараюся одразу відповісти. Ви зможете закріпити свої знання, пройшовши перший тест із основ системи компонування даних.
У другій частині на вас чекає обговорення відмінностей набору даних - запит від звичайного запиту. Також будуть розглянуті параметри віртуальних таблиць та приділено увагу розширенню мови запитів. Ну і для повного закріплення матеріалу підготую тестування.
Також у вас є можливість завантажити книгу з основ СКД
Нюанси програмної роботи зі схемою компонування даних
Схема компонування даних є великою конструктор, Що складається з наборів даних, обчислюваних полів, описи підсумкових полів (ресурсів), макетів, варіантів налаштувань і т.д.
Але на практиці часто зустрічаються завдання, коли схему компонування потрібно програмно. створити з нуля або допрацювати існуючу схему за допомогою коду вбудованою мовою, налаштувати варіант звіту – додати добір, встановити умовне оформлення, додати угруповання тощо. Такі завдання вирішуються на впровадження при адаптації типових конфігурацій фірми “1С” під вимоги конкретного замовника.
Завдання справді дуже актуальне, учасники Майстер-групи зі СКД ставлять багато запитань на цю тему :)
Також традиційно багато питань виникає при програмній роботі з налаштуваннями користувача звітів:
- Чому в установках компонувальника і в налаштуваннях користувача параметри відрізняються?
- Як зв'язуються між собою налаштування компонувальника та налаштування користувача?
- Як встановити значення відбору або параметра, якщо вони винесені в налаштування користувача?
- І багато інших…
Тому ми опублікували серію відеоуроків, де розповідається, як працювати зі схемою компонування програмно.
Загальна тривалість усіх відеоуроків 1 година 5 хвилин.
Для того, щоб Вам було простіше орієнтуватися у матеріалі, ми вказали таймінг найважливіших моментів у відео.
Відео 1 – Програмне створення варіанта звіту
00:37 – У якому обробнику можна розмістити код для створення налаштувань компонування
01:00 – Де у Синтакс-помічнику можна "підглянути" властивості, які будуть потрібні при написанні коду
01:58 – Як настроїти угруповання звіту
02:28 – Яка властивість дозволяє створювати вкладені угруповання
03:11 – Як увімкнути/вимкнути окремі елементи налаштувань.
Відео 2 – Програмне створення угруповання
00:22 – Як створити структуру звіту
02:00 – Як вказати поля, за якими виконується угруповання
04:10 – Як настроїти вибрані поля
06:30 – Як створити автополе.
Відео 3 – Програмне створення вкладеного угруповання
00:22 – Як створити підпорядковане угруповання
02:05 – Чому у звіті угруповання можуть виводитися кілька разів
02:40 – Як перевірити наявність угруповань у структурі звіту.
Відео 4 – Програмне додавання відбору
00:18 – Де у Синтакс-помічнику знайти типи даних, необхідні для створення відборів
00:55 – Які властивості об'єкту типу ЕлементВідборуКомпонівкиДаних потрібно використовувати для створення відбору
01:20 – Як створити вибір за допомогою програмного коду.
Відео 5 – Програмне встановлення сортування
00:25– Де в Синтакс-помічнику знайти типи даних, необхідні для включення сортування
00:50 – Які властивості об'єкту типу ЕлементПорядкуКомпонівкиДаних потрібно використовувати для включення сортування
01:00 – Як встановити сортування за допомогою програмного коду.
Відео 6 – Програмне додавання умовного оформлення
00:25 – Де у Синтакс-помічнику знайти типи даних, необхідних роботи з умовним оформленням
00:33 – Які властивості об'єкту типу ЕлементУмовногоОформленняКомпонівкиДаних потрібно використовувати
02:08 – Як додати умовне оформлення за допомогою програмного коду
02:31 – Як задати перелік полів, до яких застосовуватиметься умовне оформлення
03:34 – Як відібрати дані, що оформлюються
04:15 – Як за допомогою програмного коду описати застосоване оформлення.
Відео 7 – Програмна робота з налаштуваннями користувача
01:01 – Як програмно встановити значення параметра
02:00 – Чому значення параметрів, що виводяться на форму звіту, не збігаються зі значеннями у самому звіті
04:25 – Що робить метод ОтриматиНалаштування
05:10 – Як потрібно працювати з налаштуваннями користувача
06:17 – Для чого потрібна властивість Ідентифікатор Налаштування користувача
07:10 – Де в типовій конфігурації УТ 11 можна знайти приклад роботи з налаштуваннями користувача.
Відео 8 – Особливості використання методу ОтриматиНалаштування
00:58 – Чому відрізняються значення параметра в налаштуваннях компонувальника та в налаштуваннях користувача
01:23 – Як зв'язуються між собою налаштування компонувальника та налаштування користувача
03:06 – Як працює метод ОтриматиНалаштування і значення якого типу він повертає
Відео 9 – Програмне створення відборів у налаштуваннях користувача
00:34 – Чим відрізняється відбір у налаштуваннях компонувальника та відбір у налаштуваннях користувача
02:34 – Як використовується властивість Ідентифікатор Налаштування користувача
03:08 – Який алгоритм повинен використовуватися для встановлення значення відбору в налаштуваннях користувача
03:42 – Як реалізувати процедуру для встановлення значення відбору в налаштуваннях користувача.
Відео 10 - Програмне створення схеми компонування
00:40 – Як при компонуванні звіту програмно створити схему, за якою формуватиметься звіт
02:15 – Який алгоритм має використовуватись для програмного створення з нуля схеми компонування
02:50 – Як програмно створити джерело даних схеми компонування
04:00 – Як програмно додати до схеми набір даних – об'єкт
06:25 - Як програмно додати поля набору даних.
Хочете навчитися грамотно створювати звіти на СКД та доопрацьовувати звіти у типових конфігураціях?
Щоб докладніше вивчити можливості системи компонування даних та впевнено застосовувати механізм на практиці, рекомендуємо пройти курс Професійна розробка звітів у 1С 8.3 на Системі Компонування Даних (СКД)
Коментарі / обговорення (33):
Добридень, підкажіть як програмно створений параметр можна вивести в Властивості елемента налаштувань користувача (Включити в налаштування користувача) з Загального модуля і з яких подій: Налаштування.Події.ПередЗавантаженнямНалаштуваньВКомпонувальник = Істина;
Заздалегідь Дякую
Доброго дня!
Пропоную підглянути, чи є реалізація такого функціоналу у типовій конфігурації.
Насамперед на думку спадає звіт Універсальний Звіт (Він є в типових конфігураціях УТ 11, БП та інших). У модулі об'єкта є такий коментар:
// Викликається перед завантаженням нових налаштувань. Використовується для зміни схеми компонування.
…
// Щоб зміни схеми набули чинності, слід викликати метод Звіти Сервер. Підключити Схему ().
У цьому модулі є кілька прикладів використання методу. Спробуйте у цьому напрямі поекспериментувати.
Процедура ПриКомпонівціРезультату(ДокументРезультат, ДаніРозшифровки, СтандартнаОбробка) СтандартнаОбробка = Брехня; УстановитиПараметриНалаштування користувача(Налаштування користувача, “Період”, ‘2016-01-01’);
НалаштуванняКомпанівки = КомпонувальникНалаштувань.ОтриматиНалаштування(); КомпанувальникМакета = Новий КомпонувальникМакетаКомпонівкиДаних;
МакетКомпанівки = КомпанувальникМакета.Виконати(СхемаКомпонівкиДаних, НастпройкиКомпанівки); ПроцесорКомпанівки = Новий ПроцесорКомпонуванняДаних;
ПроцесорКомпанівки.Ініціалізувати(МакетКомпанівки); ПроцесорВиводу = Новий ПроцесорВиводуРезультатуКомпонуванняДанихВТабличнийДокумент;
ПроцесорВиводу.ВстановитиДокумент(ДокументРезультат);
Процесор Виводу.Вивести(ПроцесорКомпанівки);
КінецьПроцедури Процедура ВстановитиПараметрНалаштування користувача(Налаштування користувача, Ім'яНалаштування, Значення)
ПриКомпонуванняПараметр = Новий ПараметрКомпонуванняДаних(Ім'яНалаштування);
ЕлементОтбору = Невизначено; Для кожного елемента з Налаштування користувача.Елементи Цикл
Якщо Елемент.Параметр = ПолеКомпанівкиПараметр Тоді
Елемент.Значення = Значення;
Елемент.Використання = Істина;
Перервати;
КінецьЯкщо;
КінецьЦикл; КінецьПроцедури Чому викликаються дані помилки
: Змінна не визначена (Налаштування користувача)
ВстановитиПараметрНалаштування користувача(<>Налаштування користувача, “Період”, ‘2016-01-01’); (Перевірка: Сервер)
: Змінна не визначена (НастпройкиКомпанівки)
МакетКомпанівки = КомпанувальникМакета.Виконати(СхемаКомпонівкиДаних, <>НастпройкиКомпанівки); (Перевірка: Сервер)
: Змінна не визначена (ПолеКомпанівкиПараметр)
Якщо Елемент.Параметр = <ПолеКомпановкиПараметр Тоді (Перевірка: Сервер)
: Тип не визначений (КомпоновщикМакетаКомпоновкиДаних)
КомпанувальникМакета = Новий <>КомпонувальникМакетаКомпонуванняДаних; (Перевірка: Мобільний додаток-сервер)
: Тип не визначений (ПроцесорКомпонуванняДаних)
ПроцесорКомпанівки = Новий <>ПроцесорКомпонівкиДаних; (Перевірка: Мобільний додаток-сервер)
: Тип не визначений (ПроцесорВиводуРезультатуКомпонуванняДанихВТабличнийДокумент)
ПроцесорВиводу = Новий <>ПроцесорВиводуРезультатуКомпонуванняДанихВТабличнийДокумент; (Перевірка: Мобільний додаток-сервер)
Доброго дня!
Уважно читайте повідомлення про помилки. >>Змінна не визначена (Налаштування користувача)
Так, така змінна не визначена, Налаштування користувача є у об'єкту КомпонувальникНалаштувань. >>Змінна не визначена (НастпройкиКомпанівки)
Помилка, зайва буква П, вище використовується ім'я змінної НалаштуванняКомпанівки. >>Змінна не визначена (ПолеКомпанівкиПараметр)
Так, така змінна не визначена, вище використовується ім'я змінної ПриКомпонуванняПараметр.
Привіт! А як звернутися до параметра типу дата та вивести його за допомогою повідомити?
Доброго дня!
Налаштування компонування мають властивість Параметри даних, воно містить параметри.
Обходьте у циклі
Привіт!
Чи можна програмно вказати ім'я угруповання? (Коли стаємо на угруповання, правою кнопкою миші Встановити ім'я. Чи можна це зробити програмно?
Доброго дня!
Так, можна.
Для цього використовується властивість Ім'я об'єкта вбудованої мови типу УгрупованняКомпонуванняДаних:
УгрупованняТовар = НалаштуванняКомпонування.Структура.Додати(Тип("УгрупованняКомпонуванняДаних"));
УгрупованняТовар.Використання = Істина;
УгрупованняТовар.Ім'я = "Т";
У мене є пропозиція до розробників платформи 1С:Підприємство. А чому б до конструктора СКД не додати кнопку. Після натискання на яку генерувався б текст всього того, що розглянуто у відеороликах. Мені так здається, що життя занадто коротке, щоб його витрачати на розбір синтаксис-помічника. Запевняю, що витрачений час можна провести з більшою користю для організму.
Ок, надсилайте цю пропозицію розробникам платформи.
Для вирішення деяких завдань, пов'язаних із програмною роботою зі схемою компонування, отримання програмного коду на підставі схеми виявилося б корисним та економним час розробника.
Доброго дня, Василю!
підкажіть, будь ласка, чи можна програмно відключити розрахунок полів користувача
безпосередньо звіт штатна розстановка - вважаються поля ФОП, ФОП мін, ФОП макс
хоча я додаю тільки поле
Поле.Поле = Новий ПолеКомпонівкиДаних("ДаніПозиції.КількістьСтавок");
нехай і швидко звіт вважає, але хотілося б мати уявлення.
дякую!
Доброго дня!
Можна програмно встановити ознаку Використання на значення Брехня. Але тоді це поле не виводитиметься у звіт.
Або можна програмно за якоюсь умовою змінювати вираз для поля користувача. Коли його не потрібно розраховувати, можна як вираз встановити 0.
так, справді. не здогадався. напевно використання = брехня буде за часом менш затратно, ніж = 0
скористаюсь першою порадою.
дякую
Здрастуйте.
Мені потрібно, щоб при відкритті звіту на СКД з формою звіту заповнювався параметр значенням ПоточнаДата() мінус 15 днів. Написав &На Сервері
Процедура При Завантаженні Налаштувань користувача На Сервері (Налаштування, Використовуються Стандартні Налаштування)
ДатаПочаткуПар = Новий ПараметрКомпонуванняДаних(“ДатаПочатку”); Для кожного елемента з Налаштування.Елементи Цикл
Якщо елемент.Параметр = ДатаПочаткуПар Тоді
Елемент.Значення.Дата = ПоточнаДата() - 1296000; //15 днів
Елемент.Використання = Істина;
Перервати;
КінецьЯкщо;
КінецьЦикл;
КінецьПроцедури Все одно тягне дату з налаштувань користувача (ту, що використовувалася минулого разу)
Що я змарнував?
Доброго дня!
Спробуйте при завантаженні налаштувань знаходити відповідне налаштування користувача і встановлювати Поточну дату мінус 15 днів у Значення. Тобто. у процедурі При Завантаженні Налаштувань користувача На Сервері знайти в Форма.Звіт.КомпонувальникНалаштувань.Налаштування користувача налаштування користувача, що відповідає параметру ДатаПочатку.
Дякую, вийшло. Залишилося незрозумілим, що передається в цю функцію параметром Настройки? Тип там Налаштування користувача. Але якісь не ті, котрі використовують звіт.
У параметрі Налаштування передаються налаштування користувача, які завантажуються в компонувальник.
У Синтакс-помічнику зазначено, що метод При Завантаженні Налаштувань користувача На Сервері викликається вже після приміщення налаштувань у компонувальник налаштувань. Тому я і пропонував обробляти налаштування користувача в компонувальнику, а не в цьому параметрі.
Доброго дня, Василю!
Моя проблема: Є типова конфігурація (ЗКГУ) із вбудованою БСП. У цій конфігурації звіти на СКД відкриваються і налаштовуються у вигляді загальної форми “ФормаЗвіту”.Один із варіантів звіту потрібно програмно (з розширення) змінити:
1. Доопрацювати текст запиту, у ньому з'являється новий параметр (НовыйПараметр).
2. Вивести параметр на форму із можливістю зміни його користувачем.
3. У разі збереження та відновлення нового варіанта звіту забезпечити збереження та відновлення значення нового параметра.
Оскільки йдеться про механізм варіантів звітів, що поставляються БСП, труднощі для мене в реалізації п.2 і 3.
Хотілося б отримати консультацію, яку я згоден сплатити.
Доброго дня, Михайле!
Пропоную насамперед розглянути альтернативний варіант, який може спростити розробку.
Замість доопрацювання існуючого звіту створити новий звіт на базі типового. Наприклад, зробити додатковий зовнішній звіт для підсистеми БСП, змінити схему компонування, додати параметр до запиту, змінити варіант звіту.
Складність може полягати в тому, що параметри існують для схеми компонування в цілому, а не тільки для окремого варіанта. Універсальний Звіт (Він є в типових конфігураціях УТ 11, БП та інших) У модулі об'єкта є такий коментар:
// Викликається перед завантаженням нових налаштувань. Використовується для зміни схеми компонування.
// Наприклад, якщо схема звіту залежить від ключа варіанта чи параметрів звіту.
// Щоб зміни схеми набули чинності, слід викликати метод Звіти Сервер. Підключити Схему ().
У цьому модулі є кілька прикладів використання методу.
Спробуйте цим методом ще скористатися стосовно свого завдання.Наприклад, копіюєте вихідну схему компонування як новий макет і доопрацьовує її під потреби замовника. Якщо у звіті використовується необхідний ключ варіанта, підміняєте типову схему на свою (скопійовану) і викликаєте вказаний метод.
Доброго дня.
Питання таке, чи звіт СКД формується на підставі набору даних
https://ibb.co/tM9LgXb
Як зробити, щоб у сформованому звіті СКД при натисканні на реєстратор відкривався документ за посиланням як у звичайному запиті СКД?
Доброго дня!
Пропоную створити у формі звіту обробник розшифровки, у ньому відключити стандартну обробку та явно прописати відкриття документа при обробці поля Реєстратор. Можливо, потрібно буде створити макет поля у схемі компонування, прописати параметр розшифровки.
Знайшов помилку
Процедура ПриКомпонівціРезультату(ДокументРезультат, ДаніРозшифровки, СтандартнаОбробка) СтандартнаОбробка = Брехня; //НалаштуванняКомпонування = СхемаКомпонуванняДаних.НалаштуванняЗа замовчуванням;
НалаштуванняКомпонування = КомпонувальникНалаштувань.ОтриматиНалаштування(); КомпонувальникМакета = Новий КомпонувальникМакетаКомпонуванняДаних;
МакетКомпонування = КомпонувальникМакета.Виконати(СхемаКомпонуванняДаних, НалаштуванняКомпонування,); ВидДіяльності = НалаштуванняКомпонування.ПараметриДаних.Елементи.Знайти(“ВидДіяльності”);
ВибраніСтратегії = НалаштуванняКомпонування.ПараметриДаних.Елементи.Знайти(“СтратегіяДУ”);
ПеріодЗвіту = НалаштуванняКомпонування.ПараметриДаних.Елементи.Знайти(“ПеріодЗвіту”); ПараметриЗаповнення = Новий Структура("ДатаПочатку,ДатаЗакінчення,ВиглядДіяльності,ВибраніСтратегії",
ПеріодЗвіту.Значення.ДатаПочатку,
ПеріодЗвіту.Значення.ДатаЗакінчення,
ВидДіяльності.Значення,
Вибрані Стратегії. Значення); ДаніРасчетДоходности = уа_РасчетСЧА.РассчитатьДоходность(ПараметрыЗаполнения,Истина); ЗовнішнійНабірДаних = Новий Структура("Дані Дохідність", ДаніРозрахунокДохідності.ТЗ_РозрахунокДохідності); ПроцесорКомпонування = Новий ПроцесорКомпонуванняДаних;
ПроцесорКомпонівки.Ініціалізувати(МакетКомпонівки, ЗовнішнійНабірДаних); ПроцесорВиводу = Новий ПроцесорВиводуРезультатуКомпонуванняДанихВТабличнийДокумент;
ПроцесорВиводу.ВстановитиДокумент(ДокументРезультат);
Процесор Виводу.Вивести(ПроцесорКомпонування); КінецьПроцедури Втратив у процедурі виконати та ініціалізувати ДаніРозшифрування Код нижче розшифровка працює Процедура ПриКомпонівціРезультату(ДокументРезультат, ДаніРозшифрування, СтандартнаОбробка) СтандартнаОбробка = Брехня; //НалаштуванняКомпонування = СхемаКомпонуванняДаних.НалаштуванняЗа замовчуванням;
НалаштуванняКомпонування = КомпонувальникНалаштувань.ОтриматиНалаштування(); КомпонувальникМакета = Новий КомпонувальникМакетаКомпонуванняДаних;
МакетКомпонування = КомпонувальникМакета.Виконати(СхемаКомпонуванняДаних, НалаштуванняКомпонування,ДаніРозшифровки); ВидДіяльності = НалаштуванняКомпонування.ПараметриДаних.Елементи.Знайти(“ВидДіяльності”);
ВибраніСтратегії = НалаштуванняКомпонування.ПараметриДаних.Елементи.Знайти(“СтратегіяДУ”);
ПеріодЗвіту = НалаштуванняКомпонування.ПараметриДаних.Елементи.Знайти(“ПеріодЗвіту”); ПараметриЗаповнення = Новий Структура("ДатаПочатку,ДатаЗакінчення,ВиглядДіяльності,ВибраніСтратегії",
ПеріодЗвіту.Значення.ДатаПочатку,
ПеріодЗвіту.Значення.ДатаЗакінчення,
ВидДіяльності.Значення,
Вибрані Стратегії. Значення); ДаніРасчетДоходности = уа_РасчетСЧА.РассчитатьДоходность(ПараметрыЗаполнения,Истина); ЗовнішнійНабірДаних = Новий Структура("Дані Дохідність", ДаніРозрахунокДохідності.ТЗ_РозрахунокДохідності); ПроцесорКомпонування = Новий ПроцесорКомпонуванняДаних;
ПроцесорКомпонування.Ініціалізувати(МакетКомпонування, ЗовнішнійНабірДаних, ДаніРозшифрування); ПроцесорВиводу = Новий ПроцесорВиводуРезультатуКомпонуванняДанихВТабличнийДокумент;
ПроцесорВиводу.ВстановитиДокумент(ДокументРезультат);
Процесор Виводу.Вивести(ПроцесорКомпонування); КінецьПроцедури
Доброго дня.
Створив зовнішній звіт НоменклатуриКалькуляцій. Угруповання за номенклатурою Документу та за номенклатурою таліци МатеріалиІПослуги, використовував тільки документи ПлановіКалькуляції та їх табличні частини МатеріалиІРесурси. Таблиця, рядки – матеріали, стовпці – вироби, у перетині кількість….
Ідея полягає в тому, щоб бачити скільки матеріалу (номенклатура табличної частини) йде / є / немає / потрібно при виробництві виробів (номенклатура документа).
Якщо дозволите питання.
Стратегічно як правильніше вносити зміни в налаштування звіту, а саме в кількість Виробів, які будуть фігурувати у звіті.
Алгоритм дій користувача – Вибирає зі списку калькуляції (зробили, працює), що цікавлять, отримує таблицю на формі, в таблиці хоче проставити потрібну кількість і вже за цим списком буде формуватися Звіт.
Якої ахітектури звіту потрібно прагнути з таким завданням?
Доброго дня!
Пропоную реалізувати це завдання не як зовнішній звіт, а як зовнішню обробку. Буде такий наворочений АРМ.
На формі маємо всі необхідні елементи для введення даних користувачем – поля введення, таблиці.З цих даних програмно формуємо підсумкову таблицю значень, яку передаємо системі компонування, якої залишається лише сформувати звіт, вивести його, оформити.
Налаштування обробки можна зберігати, для цього є штатні можливості платформи.
Добрий день. Підкажіть, будь ласка, якщо встановити за умовчанням під час формування звіту період (01.01.2016), але користувач вирішив змінити цей параметр і сформувати звіт за 01.01.2017, як поставити умову у процедурі, що якщо користувач змінює параметр, слухати користувача?
Початкова мета – при формуванні звіту встановлювати кінець поточного дня, але у разі потреби користувач змінює період вручну
Доброго дня!
Пропоную у процедурі ПриКомпонівціРезультату перевіряти, чи встановлено значення параметра. Якщо встановлено, значить, користувач вказав його, потрібно формувати з цим значенням параметра. Якщо ж параметр не заповнений, то програмно встановити значення параметра, скомпонувати звіт із заданим програмним значенням.