THE BELL

Є ті, хто прочитали цю новину раніше вас.
Підпишіться, щоб отримувати статті свіжими.
Email
ім'я
Прізвище
Як ви хочете читати The Bell
без спаму

Вітаю Вас, шановний читачу! У нас черговий урок з основ системи компоновки. У ви познайомилися з функціями мови виразів СКД, побачили особливості роботи системи компоновки, а також розібралися з основними настройками полів компонування. А зараз ми розглянемо новий матеріал. Поїхали!

Додаткові настройки полів СКД.

колонка «Тип значення» дозволяє вказати тип даних для поля компонування. Навіщо вказувати тип, наприклад для поля «Номенклатура», якщо тож відомо якого він типу? Це необхідно в разі, якщо поле компонування складеного типу. Можна вибрати певний тип, тоді при відборі по цьому полю будуть вибиратися значення даного типу.

колонка «Доступні значення» дозволяє вказати доступні для вибору значення і обмежити вибір користувача певними рамками.

колонка «Оформлення» дозволяє задавати оформлення полю компонування, не використовуючи макети. Можна вказати колір шрифту, колір рамки, орієнтацію тексту і т.д.

колонка «Параметри редагування» дозволяє вказати, як редагувати поле компонування. Наприклад, можна вказати швидкий вибір елементів зі списку у відборі. За замовчуванням поле компонування всі параметри редагування успадковує від об'єкта метаданих.

обчислювані поля

На закладці «Обчислювані поля» компонування даних можна створювати свої обчислювані поля.

Навіщо потрібні обчислювані поля, якщо їх можна створювати на рівні запиту? Не всі поля можна описати за допомогою запиту. Якщо потрібно скласти складне поле з різних наборів даних, наприклад типу запит і об'єкт, тоді без обчислюваних полів не обійтися. Додати поле компонування даних не можна, якщо джерелом даних є запит і стоїть автозаповнення, а за допомогою обчислюваних можна додати скільки завгодно полів.

У колонці обчислюваного поля «Вираз» потрібно написати довільне вираження, яке використовує поля компонування даних, звертаючись по їхньому шляху (колонка «Шлях» на закладці «Набори даних»). Або можна використовувати функції математичного перетворення, або звертатися до функцій загальних модулів. Наприклад, запишемо в колонці «Шлях до даних» назву обчислюваного поля «Відхилення», а в поле «Вираз» наступне.

Особливості створення звітів в 1С v8 в режимі товстого клієнта

Як зробити вибір варіанта?

  • На панель звіту поміщаємо кнопку "ВибратьВаріант"
  • На форму поміщаємо поле "НаДату"

Приклад коду: Процедура ДействіяФормиВиборВаріанта (Кнопка) макет \u003d ПолучітьМакет ( "ОсновнаяСхемаКомпоновкіДанних"); спВаріанти \u003d Новий СпісокЗначеній; Для кожного варіант з макет.ВаріантиНастроек Цикл спВаріанти.Добавіть (варіант.Настройкі, варіант.Представленіе); КонецЦікла;

вибір \u003d спВаріанти.ВибратьЕлемент (); Якщо вибір \u003d Не визначено Тоді Повернення; КонецЕсли;

КомпоновщікНастроек.ЗагрузітьНастройкі (вибор.Значеніе);

Сформувати (); КонецПроцедури

Процедура НаДатуПріІзмененіі (Елемент) Сформувати (); КонецПроцедури

Процедура Сформувати () ЕлементиФорми.Результат.Очістіть (); КомпоновщікНастроек.Настройкі.ПараметриДанних.УстановітьЗначеніеПараметра ( "Період", НаДату); СкомпоноватьРезультат (ЕлементиФорми.Результат); КонецПроцедури

Процедура відкриття () НаДату \u003d ТекущаяДата (); Сформувати (); КонецПроцедури

Особливості створення звітів через СКД

Поетапне створення звіту

  1. Створити Звіт в вузлі Звітів
  2. Створити Макет в звіті, тип якого - Схема компонування даних
  3. У властивостях звіту встановити: Основна схема компонування даних \u003d Створений Макет
  4. У властивостях звіту встановіть підсистему, якою він належить (звіт в Підприємстві буде виведений в верхній навігаційній панелі)
  5. Створити запит в макеті (пункт: Додати набір даних - Запит)
  6. У закладці Параметри у Макета необхідно прибрати галочки у всіх рядків в колонці ОграніченіеДоступності - тобто всі параметри будуть доступні для редагування користувачеві
  7. У закладці Налаштування у Макета необхідно у вікні, де виводиться вузол Звіт, створити нову угруповання без вказівки поля угруповання - буде створена детальна рядок
  8. У закладці Налаштування у Макета, в вікні де виводиться додатковий набір закладок, вибрати доп. 'ятати Параметри - позначити всі параметри галочкою і на кожному параметрі натиснути кнопку Властивості елемента налаштувань, відкриється вікно налаштування параметра, де необхідно поставити галочку - Включати параметр в призначені для користувача настройки
  9. У закладці Налаштування у Макета, в вікні де виводиться додатковий набір закладок, вибрати доп. 'ятати ВибранниеПоля - там необхідно додати колонки які будуть виводитися в звіті
  10. Запускайте Підприємство, відкривайте звіт, встановлюйте значення параметрів, Сформувати (перевірте що обраний Основний варіант формування звіту)

Як додати Нередагована користувачем параметр?

Наприклад, нам потрібно встановити параметр запиту "Інформаційна база"

  • У формі макета компонування на закладці Параметри у потрібного параметра зняти прапори "Включати в доступні поля" і "Обмеження доступності"
  • У формі макета компонування на закладці Налаштування на подзакладке (внизу) Параметри у потрібного параметра зняти прапор, відкрити властивості (кнопка з гайковим ключем), на цій формі:
    • Зняти прапор "Включати в призначені для користувача настройки"
    • Режим редагування встановити "Недоступний"


  • У модулі форми звіту в обробнику події "ПріЗагрузкеВаріантаНаСервере" (можна і прочинені, але НЕ ПріСозданііНаСервере, тому що вона виконується ДО завантаження налаштувань звіту і налаштування будуть перезаписані) програмно встановити параметр:

& НаСервере Процедура ПріЗагрузкеВаріантаНаСервере (Настройки)

// Установка параметра Налаштування \u003d Отчет.КомпоновщікНастроек.Настройкі; Настройкі.ПараметриДанних.УстановітьЗначеніеПараметра ( "ІнформаціоннаяБаза", Отчет.ІнформаціоннаяБаза); КонецПроцедури

Як задати варіанти звіту?

  • У формі макета компонування на закладці Налаштування в поле зліва можна створити необхідні варіанти звіту

Як задати угруповання?

  • У формі макета компонування на закладці Налаштування в поле справа вгорі можна створити необхідні угруповання

Як програмно вивести звіт?

У модулі форми:

& НаКліенте Процедура СформіроватьОтчетВиполніть ()

ЕтаФорма.СкомпоноватьРезультат ();

КонецПроцедури

Як тестувати звіт?

Потрібно виконати:

  • Сформувати ситуацію в клієнтському тесті - найзручніше через таблицю ситуації
  • отримати форму звіту - форма \u003d ПолучітьФорму ( "Отчет.ДвіженіеПроцесов.Форма.ФормаОтчета");
  • завантажити потрібний варіант звіту - встановити параметр розширення форми звіту "КлючВаріанта" (ім'я настройки в макеті компонування даних)
  • завантажити потрібні налаштування звіту -? заповнити параметр розширення форми звіту "ПользовательскіеНастройкі" (тип "ПользовательскіеНастройкіКомпоновкіДанних") так не вийшло, все складно, див. нижче.
  • відкрити форму - форма.Открить ()
  • виконати формування - форма.СкомпоноватьРезультат ();
  • перевірити вміст табличного документа форма.Результат - добре б мати функції порівняння з еталонною mxl
  • закрити форму - форма.Закрить (); - а може бути, можна і не відкривати, треба перевірити

див. також

  • опис: меню Довідка / Синтакс-помічник / закладка Зміст / Інтерфейсні об'єкти керованого застосування / Розширення керованої форми / Розширення керованої форми для звіту / Параметри форми

Як завантажити потрібні налаштування звіту?

У документації описано, що є такий параметр розширення форми звіту "ПользовательскіеНастройкі" типу "ПользовательскіеНастройкіКомпоновкіДанних", але там дуже складна об'єктна структура, не вдалося її використовувати.

Реально працює схема:

1. Створюємо в звіті параметри

  • Період типу СтандартнийПеріод
  • Відбір типу СпісокЗначеній (краще було б Структура, але її немає в списку типів параметрів, як і довільного типу)

2. У процедуру ПолучітьФорму передаємо потрібні параметри:

період \u003d Новий СтандартнийПеріод; період.Варіант \u003d ВаріантСтандартногоПеріода.ПроізвольнийПеріод; період.ДатаНачала \u003d текущаяДата; період.ДатаОкончанія \u003d завтрашняяДата;

відбір \u003d Новий СпісокЗначеній; отбор.Добавіть (Тестірованіе.ПолучітьОб'ект (стСітуація, "БП1"), "бізнес-процесів");

стПараметри \u003d Новий Структура ( "КлючВаріанта, Період, Відбір", "Основний", період, відбір); // ОткритьФормуМодально ( "Отчет.ДвіженіеПроцессов.Форма.ФормаОтчета", стПараметри); форма \u003d ПолучітьФорму ( "Отчет.ДвіженіеПроцессов.Форма.ФормаОтчета", стПараметри);

3. У обробниках подій форми встановлюємо параметри

& НаСервере Функція спПолучіть (спСпісок, уявлення) Експорт Для Кожного елемент З спСпісок Цикл Якщо елемент.Представленіе \u003d уявлення Тоді Повернення елемент.Значеніе; КонецЕсли; КонецЦікла; Повернення Не визначено; КонецФункціі

& НаСервере Процедура УстановітьЗначеніеПользовательскойНастройкі (Настройки, Ім'я, Значення) Для Кожного елемент З Настройкі.Елементи Цикл Якщо ТіпЗнч (елемент) \u003d Тип ( "ЗначеніеПараметраНастроекКомпоновкіДанних") Тоді Якщо Рядок (елемент.Параметр) \u003d Ім'я Тоді елемент.Значеніе \u003d Значення; елемент.Іспользованіе \u003d Істина; КонецЕсли; КонецЕсли; КонецЦікла; КонецПроцедури

& НаСервере Процедура УстановітьЗначеніеПользовательскогоОтбора (Настройки, Ім'я, Значення) Для Кожного елемент З Настройкі.Елементи Цикл Якщо ТіпЗнч (елемент) \u003d Тип ( "ОтборКомпоновкіДанних") Тоді Для Кожного відбір З елемент.Елементи Цикл Якщо Рядок (отбор.ЛевоеЗначеніе) \u003d Ім'я Тоді відбір .ПравоеЗначеніе \u003d значення; отбор.Іспользованіе \u003d Істина; КонецЕсли; КонецЦікла; КонецЕсли; КонецЦікла; КонецПроцедури

& НаСервере Процедура ПріЗагрузкеВаріантаНаСервере (Настройки)

НаіменованіеТекущегоВаріанта \u003d ПредставленіеТекущегоВаріанта;

Налаштування \u003d Отчет.КомпоновщікНастроек.Настройкі; Настройкі.ПараметриДанних.УстановітьЗначеніеПараметра ( "ІнформаціоннаяБаза", Отчет.ІнформаціоннаяБаза);

КонецПроцедури

& НаСервере Процедура ПріЗагрузкеПользовательскіхНастроекНаСервере (Налаштування) Налаштування \u003d Отчет.КомпоновщікНастроек.ПользовательскіеНастройкі;

<> "00010101" Тоді Налаштування \u003d Отчет.КомпоновщікНастроек.ПользовательскіеНастройкі; УстановітьЗначеніеПользовательскойНастройкі (Настройки, "Період", Параметри.Період); КонецЕсли;

ссБізнесПроцесс \u003d спПолучіть (Параметри.Отбор, "бізнес-процесів"); якщо ссБізнесПроцесс<> Не визначено Тоді УстановітьЗначеніеПользовательскогоОтбора (Настройки, "бізнес-процесів", ссБізнесПроцесс); КонецЕсли;

КонецПроцедури

зауваження:

  • Є ПараметриДанних, тобто те що встановлюється в параметри запиту СКД
  • Деякі з них призначаються в налаштуванні варіанту в ПользовательскіеНастройкі (в свойтсва параметра є прапор "Включити в призначені для користувача настройки"
  • Навіть якщо при завантаженні на сервері в параметри даних завантажити потрібні значення, потім відкривається форма, в яку автоматично завантажуються збережені в минулий раз настройки. Ці настнокі при формуванні звіту "перебивають" настройки даних
  • У обробнику ПріЗагрузкеПользовательскіхНастроекНаСервере об'єкт, який потрібно Налаштування є копією реальних налаштувань, Тому щоб змінити налаштування, які з'являться на формі, треба заповнювати об'єкт Отчет.КомпоновщікНастроек.ПользовательскіеНастройкі

Як зробити множинні (списком) параметри запиту в СКД?

У запиті потрібно використовувати вираз "В (& ІмяПараметра)" (Див. Логічні вирази в мові запитів 1Cv8)

У налаштуванні макета схеми СКД на закладці "Параметри" для цього параметра треба поставити галочку в колонці "Доступний список значень". В цьому випадку при виборі параметра СКД видає форму редагування списку, в якій можна додати будь-яке значення параметрів.

Як зробити відключаються параметри запиту в СКД?

У запиті СКД треба використовувати конструкції, оточені фігурними дужками "{}" .

Якщо галочка в формі звіту (панель швидкого налаштування) У відповідного параметра знята, то ця конструкція забирається із запиту.

Детальніше див. Розширення мови запитів для системи компоновки даних (1Cv8)

Як зробити звіт з розворотом по колонках?

Для цього в налаштуванні варіанту звіту (редагування макета компонування даних, закладка "Налаштування", поле справа вгорі), потрібно в якості першого угруповання додати "Таблиця".

Після цього в вузлі "Таблиця" з'являються гілки "Рядки" та "Колонки", куди і додаються потрібні угруповання.

Як налаштувати формат виведення полів?

У редакторі макета компонування даних на закладці "Набори даних" в правій верхній області є список полів звіту.

Є дві можливості:

  1. Налаштувати значення колонки "Вираз вистави"
    • тут можна ввести вираз мови, котре видає потрібний рядок
    • з полями ресурсів це не працює
  2. Налаштувати значення колонки "Оформлення"
    • в оформленні є властивість "Формат" - це значення, аналогічне параметру функції мови "Формат", можна задати потрібний вид
    • перетворення типів тут не зробити

Для полів ресурсів можна задавати вираження обчислення (закладка "Ресурси") - наприклад,

Сума (Час) /3600.0

для перекладу з секунд у години.

Потрібну точність можна задати через "Оформлення" поля на закладці "Набори даних".

Особливості установки параметрів системи компоновки даних

Існують і вимагають різної обробки принаймні ТРИ виду параметрів:

ПараметриДанних

ПараметриДанних визначаються в запиті (джерелі даних) СКД.

Параметри даних передаються в запит джерела даних і визначають видобувні дані.

В об'єкта КомпоновщікНастроек є спеціальне властивість для роботи з параметрами даних КомпоновщікНастроек.Настройкі.ПараметриДанних

Можна встановити викликом вигляду

Налаштування \u003d Отчет.КомпоновщікНастроек.Настройкі; Настройкі.ПараметриДанних.УстановітьЗначеніеПараметра ( "ІнформаціоннаяБаза", Отчет.ІнформаціоннаяБаза);

відбір

Відбори накладаються на отримані дані після вилучення з джерела даних.

В об'єкта КомпоновщікНастроек є спеціальне властивість для роботи з відборами КомпоновщікНастроек.Настройкі.Отбор.

наприклад: Налаштування \u003d Отчет.КомпоновщікНастроек.Настройкі; Настройкі.ПараметриДанних.УстановітьЗначеніеПараметра ( "ІнформаціоннаяБаза", Отчет.ІнформаціоннаяБаза);

Для кожного елемент З Параметри.Отбор Цикл ЕлементОтбора \u003d Настройкі.Отбор.Елементи.Добавіть (Тип ( "ЕлементОтбораКомпоновкіДанних")); ЕлементОтбора.ВідСравненія \u003d ВідСравненіяКомпоновкіДанних.Равно; ЕлементОтбора.ЛевоеЗначеніе \u003d Новий ПолеКомпоновкіДанних (елемент.Представленіе); ЕлементОтбора.ПравоеЗначеніе \u003d елемент.Значеніе; КонецЦікла;

ПользовательскіеНастройкі

Призначені для користувача настройки визначають дані, які користувач може налаштувати на формі.

Призначені для користувача настройки можуть відображаються на формі в спеціальній таблиці і можуть бути викликані по кнопці "Налаштування" і з меню "Всі дії".

призначені для користувача настройки пов'язані з параметрами даних і відборами якимось досить складним чином, Цей зв'язок можна налаштовувати візуально, але програмно з ними працювати якось дуже незручно.

Поки не знайшлося нічого кращого, як встановлювати значення існуючої колекції за індексом, Що само собою може від'їхати при зміні макета СКД в візуальному редакторі.

Крім того, якщо якийсь параметр даних оголошений призначеним для користувача, то програмної установки параметра даних (див.вище) недостатньо, відновлюване значення для користувача настройки перебиває встановлено значення даних. Тому для таких параметрів немає сенсу встановлювати параметр даних, Потрібно відразу встановлювати призначену для користувача налаштування.

Зручне місце для установки потрібних значень - обробник події "ПріЗагрузкеПользовательскіхНастроекНаСервере" розширення форми звіту.

& НаСервере Процедура ПріЗагрузкеПользовательскіхНастроекНаСервере (Настройки)

якщо Параметри.Період.ДатаОкончанія<> "00010101" Тоді Налаштування \u003d Отчет.КомпоновщікНастроек.ПользовательскіеНастройкі; Настройкі.Елементи.Значеніе \u003d Параметри.Період; КонецЕсли;

КонецПроцедури

Використання джерела даних у вигляді об'єкта

Для використання набору даних типу об'єкт потрібно передати зовнішнє джерело даних методу Ініціалізувати об'єкта "Процесор компонування даних".

ДанниеРасшіфровкі \u003d Не визначено;

КомпоновщікМакета \u003d Новий КомпоновщікМакетаКомпоновкіДанних; МакетКомпоновкі \u003d КомпоновщікМакета.Виполніть (СхемаКомпоновкіДанних, КомпоновщікНастроек.Настройкі, ДанниеРасшіфровкі);

ПроцессорКомпоновкі \u003d Новий ПроцессорКомпоновкіДанних; ПроцессорКомпоновкі.Ініціалізіровать (МакетКомпоновкі, Новий Структура ( "Дані", ПолучітьДанниеВнешнегоІсточніка ()), ДанниеРасшіфровкі);

Простий приклад прикладений (для роботи прикладу необхідно наявність довідників "Контрагенти" і "Договори контрагентів").

Увага! Перед вами ознайомча версія уроку, матеріали якого можуть бути неповними.

Увійдіть на сайт як учень

Увійдіть як учень, щоб отримати доступ до матеріалів школи

Система компоновки даних 1С 8.3 для початківців: робимо зв'язок наборів даних

  • Написати звіт, який виводить клієнтів і їх улюблені продукти. У кожного клієнта є улюблений колір, а у кожного продукту свій колір - ось на підставі цих квітів і потрібно визначати "Улюблені" продукту. Наприклад, якщо у Андрія улюблений колір червоний, то одним з його улюблених продуктів будуть помідори (вони червоного кольору).
  • Застосувати в звіті два набори даних. Перший набір - це дані з таблиці довідника "Клієнти". Другий - дані з таблиці довідника "Їжа".
  • здійснити зв'язок цих двох наборів, Щоб в звіті залишилися тільки улюблені продукти для кожного з клієнтів.

Створюємо новий звіт

Відкриваємо базу "Гастроном" в конфігураторі і через головне меню створюємо новий звіт:

Вид документа - "Зовнішній звіт":

У формі нового звіту вказуємо ім'я "Урок6" і натискаємо кнопку "Відкрити схему компоновки даних":

Ми залишаємо ім'я схеми за замовчуванням:

Додаємо перший набір даних

У відкрилася схемою переходимо на закладку "Набори даних" і через зелений плюсик вибираємо "Додати набір даних - запит":

Викликаємо конструктор запиту:

Вказуємо таблицю "Клієнти" і поля, які потрібно отримати із запиту:

Додаємо другий набір даних

Додаємо другий набір даних:

Виділяємо його (НаборДанних2) і знову викликаємо конструктор запиту:

Вказуємо таблицю довідника "Їжа" та поля, які потрібно отримати із запиту:

Вийшов такий текст запиту:

Зверніть увагу, що у нас зараз в звіті присутні два набори даних: НаборДанних1 і НаборДанних2. У кожного свій текст запиту і свої дані.

Робимо імена більш наочними

Для наочності, давайте перейменуємо НаборДанних1 в Клієнти, а НаборДанних2 в Їжа.

Зробіть це подвійним клацанням по кожному з наборів:

Дані кожного з наборів ми зможемо використовувати в нашому звіті. До цих даних ми будемо звертатися через поля.

В наразі у набору "Клієнти" наступні поля: "Найменування" і "ЛюбімийЦвет", а у набору "Їжа": "Найменування" і "Колір".

Бачимо, що імена перетинаються і ми легко заплутаємося. Тому давайте змінимо імена полів на більш балакучі.

Виділяємо набір "Клієнти" і міняємо імена полів так:

Потім виділяємо набір "Їжа" і міняємо імена полів так:

Викликаємо конструктор налаштувань

Нарешті, переходимо на закладку "Налаштування" і натискаємо чарівну паличку, щоб викликати конструктор налаштувань:

Тип звіту - "Список ...":

Вибираємо поля для звіту з обох наборів:

Бачите чому так важливо було змінити імена полів? На етапі налаштувань компонування даних ми не бачимо з яких наборів ці поля. Бачимо тільки їх імена.

перевіряємо звіт

Зберігаємо звіт і формуємо в режимі користувача:

Ага. Добре, але не зовсім. Сталося так зване перехресне з'єднання двох наборів (вам це повинно бути добре знайоме по з'єднаннях в запитах, які ми вивчали в минулих модулях). Кожного запису з таблиці "Клієнти" сполучати запис з таблиці "Їжа".

Але нам потрібно з усіх цих записів залишити тільки ті у яких поле "ЛюбімийЦветКліента" одно полю "ЦветЕди":

Здійснюємо зв'язок двох наборів даних

Для цього здійснимо зв'язок двох наборів даних (Клієнти і Їжа) по полях ЛюбімийЦветКліента і ЦветЕди.

Переходимо на закладку "Зв'язки наборів даних" і натискаємо на кнопку-плюсик, щоб додати новий зв'язок:

Налаштовуємо параметри як на малюнку нижче:

Зроблю пояснення.

Джерело і приймач зв'язку. Ну тут все зрозуміло. Вказуємо перший набір (Клієнти) і другий набір (Їжа) даних. хочу звернути особливу увагу, Що зв'язок буде здійснюватися за принципом зовнішнього лівого з'єднання (Ми його проходили в темі запитів в минулих модулях). Виходячи з цього і потрібно вибирати який набір буде джерелом, а який приймачем.

Вираз джерело. Вказуємо тут вираз або просто поле з набору даних джерела (ми тут вказали поле ЛюбімийЦветКліента з набору Клієнти).

Вираз приймач. Вказуємо тут вираз або просто поле з набору даних приймача (ми тут вказали поле ЦветЕди з набору Їжа).

Таким чином дана зв'язок залишить з минулого списку тільки ті рядки, у яких поле ЛюбімийЦветКліента одно полю ЦветЕди.

Збережемо звіт і запустимо в режимі користувача:

Відмінно!

Зроблю пояснення про поле " Умова зв'язку", Про яке так часто б'ють свої списи початківці програмісти.

Умова зв'язку - це допоміжне поле. Туди можна писати вирази за участю полів тільки з набору даних, зазначеного в джерелі зв'язку.

В цьому випадку для всіх рядків з джерела зв'язку перед здійсненням зв'язку буде перевірятися цей вислів (умова зв'язку). І якщо цей вислів одно ІСТИНА, то робитиметься спроба встановити зв'язки цього рядка з рядками з приймача зв'язку. Якщо ж вираз дорівнює БРЕХНЯ, то таких спроб робитися не буде.

У конструкторі запитів, коли він викликається з форми настройки джерела даних, для схеми компонування даних. Є закладка "характеристики", використання якої не цілком ясно описано в документації. У цій статті я постараюся пояснити, як і для чого використовуються характеристики в СКД.

У конструкторі запитів, коли він викликається з форми настройки джерела даних, для схеми компонування даних. Є закладка "характеристики", використання якої не цілком ясно описано в документації. У цій статті я постараюся пояснити, як і для чого використовуються характеристики в СКД. В типових конфігураціях активно використовується механізм властивостей і значень властивостей доступний практично для будь-яких об'єктів. Примітивно, на довідниках, цей механізм реалізовувався ще в конфігураціях 7.7. Зараз цей механізм реалізований з використанням плану видів характеристик і регістра відомостей, але ідея залишилася колишньою. Коли я вперше зіткнувся з необхідністю використання цього механізму, в схемі СКД, я дуже довго мучився, організовував вкладені запити, приєднував до основної вибірці і ламав голову над тим, як врахувати можливість появи нових видів властивостей, яких немає на момент розробки звіту. Весь механізм властивостей, будучи простим і логічним з точки зору користувача, не піддавався ніякої нормальної обробки, поки я не розібрався із закладкою "Характеристики". Таблиця на закладці дуже примхлива, або ви введете весь рядок коректно, або відмовитеся від введення рядка зовсім, залишити "на потім" не до кінця заповнений рядок система не дасть. Отже, перейдемо до конкретики. Перша колонка: Тип - тут вибираємо тип об'єкта, до якого прив'яжуться характеристики, наприклад "СправочнікСсилка.Номенклатура" Це означає, що тепер для всіх об'єктів зазначеного типу можна буде отримати значення властивостей. Далі в наступному стовпчику Джерело видів ми повинні задати параметри джерела видів властивостей. Можливі варіанти таблиця м запит, навіщо потрібен варіант запит розповім пізніше, зараз виберемо пункт таблиця. У колонці Види характеристик ми повинні вибрати таблицю інформаційної бази, В якій зберігаються потрібні види характеристик, в нашому прикладі це буде "ПланВідовХарактерістік.СвойстваОб'ектов". Далі, значення доступні нам для вибору в колонках Поле ключа, Поле імені і Поле типу значення, безпосередньо залежать від полів обраної нами таблиці. В Поле ключа ми вибираємо Посилання, в Поле імені - Подання (саме його користувач побачить в якості імені реквізиту), а в Поле типу відповідно ТіпЗначенія. Тепер перейдемо до джерела значень. Джерелом значень у нас буде регістр відомостей "ЗначеніяСвойствОб'ектов", тому ми вибираємо в колонці Джерело значень - таблиця, а в колонці Значення характеристик - "РегістрСведеній.ЗначеніяСвойствОб'ектов". В колонках Об'єкт, Властивість, Значення, вибираємо відповідні поля регістру Об'єкт, Властивість, Значення. Здавалося б, на цьому все. Заходимо в настройки схеми, додаємо угруповання по товарах, і додаємо підпорядковану їй угруповання, припустимо по Брендам, є у нас така властивість. Розгортаємо список реквізитів угруповання Номенклатура і ... не бачимо там ніяких властивостей: Справа в тому, що ми знаходимося в конфігураторі, звідки немає доступу до даних. Як же зробити потрібну настройку? Найзручніше для цього використовувати консоль компонування даних, ту що на диску ІТС, або ту що входить в підсистему "Інструменти розробника". Але можна і просто відкрити налаштування звіту в режимі підприємства. Отже, відкриємо ту ж настройку, але в режимі підприємства: Як бачите, у нас додалися нові "Реквізити", при цьому ...

Питання: СКД, Як для параметра відкрити потрібну форму вибору?


Добридень! Є звіт на СКД, в ньому є параметр Бренд - тип Справочнік.Номенклатура. Як для цього параметра викликати певну форму вибору? Пробував в СКД на закладці "Параметри" вставав на потрібний параметр - подвійний клік по колонці "Параметри редагування" - ставлю галочку "Форма вибору" і прописую значення Справочнік.Номенклатура.Форма.ФормаВибораНужная. При запуску звіту форма вибору все одно використовується за умовчанням, а не та, яка прописана в "Формі вибору". Конфігурація УТ, звичайні форми. Підкажіть, пжл, де, чого не так?

відповідь: Ключова фраза Звичайні форми, переходь на керовані

Питання: Вибрати значення на формі виборі


Добридень!

Звичайна програма.

Є документ. У нього кілька реквізитів посилального типу, наприклад "СправочнікСсилка.Банкі", зі значенням "Банк1".

Необхідно в формі вибору довідника "Банки", програмно ВИБРАТИ елемент "Банк1", тобто типу перевибрать це значення "Банк1".

Поки зробив наступне:
Процедура ВиполнітьВиборВФормеВибора (Посилання)
ФормаВибораСправочніка \u003d Справочнікі.Банкі.ПолучітьФОрмуВибора (, Посилання); // отримую форму вибору довідника Банки по переданому параметру Посилання
// встановлюю відбір в цій формі вибору, згідно мій посиланням в реквізиті
ФормаВибораСправочніка.Отбор.Ссилка.Іспользованіе \u003d Істина;
ФормаВибораСправочніка.Отбор.Ссилка.Значеніе \u003d посилання;
ФормаВибораСправочніка.ЕлементиФорми.СправочнікСпісок.ІерархіческійПросмотр \u003d Брехня;
ФормаВибораСправочніка.Открить ();
// тут код, що імітує натискання на кнопку Вибрати, як ????
КонецПроцедури

Допоможіть, хто стикався, чи є ідея.

Дякую.

відповідь:

Зробив ось так:

Процедура ВиполнітьВиборВФормеВибора (Посилання, річок) // параметр "посилання" - це посилання значення на формі документа; "Річок" - поточний елемент форми, тобто поле вибору
ФормаВибораСправочніка \u003d Справочнікі.Банкі.ПолучітьФОрмуВибора (, Рек, Посилання);
ФормаВибораСправочніка.ЕлементиФорми.СправочнікСпісок.ІерархіческійПросмотр \u003d Брехня;
ОткритьФорму (ФормаВибораСправочніка, річок,);

Якщо ФормаВибораСправочніка.Открита () Тоді
ФормаВибораСправочніка.Актівізіровать ();
КонецЕсли;

ФормаВибораСправочніка.ТекущійЕлемент.ТекущаяСтрока \u003d посилання;
ВиборЕл \u003d ФормаВибораСправочніка.ТекущійЕлемент.ТекущаяСтрока;

Якщо ВиборЕл \u003d не визначено або НЕ значеніезаполнено (ВиборЕл) тоді
Повідомити ( "Значення" + Посилання + "не було знайдено в формі вибору довідника");
інакше
ФормаВибораСправочніка.ОповестітьОВиборе (ВиборЕл);
КонецЕсли;

КонецПроцедури

Питання: Кнопка "Вибрати" на формі вибору або як виконати натискання кнопки "Вибрати"


Добридень!

Звичайна програма.

Які думки є, щоб виконати натискання на кнопку "Вибрати" на формі вибору документа / довідника?

Кликати мишкою і СОМ не пропонувати роблю автоматизацію.

Хотелка: в формі вибору зімітувати натискання кнопки "Вибрати".

відповідь: Начебто вирішив задачу ... пару прогонів тесту.

Додано через 17 хвилин
Поки працює ось так:

1C
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Процедура Виконати ВиборВФормеВибора (Посилання, річок) // параметр "посилання" - це посилання значення на формі документа; "Річок" - поточний елемент форми, тобто поле вибору ФормаВибораСправочніка \u003d Довідники. Банки. ПолучітьФОрмуВибора (, Рек, Посилання); ФормаВибораСправочніка. ЕлементиФорми. СправочнікСпісок. ІерархіческійПросмотр \u003d Брехня; ОткритьФорму (ФормаВибораСправочніка, річок,); Якщо ФормаВибораСправочніка. Відкрита () Тоді ФормаВибораСправочніка. Активізувати (); КонецЕсли; ФормаВибораСправочніка. ТекущійЕлемент. ТекущаяСтрока \u003d посилання; ВиборЕл \u003d ФормаВибораСправочніка. ТекущійЕлемент. ТекущаяСтрока; якщо ВиборЕл \u003d не визначено або НЕ значеніезаполнено (ВиборЕл) тоді Повідомити ( "Значення" + Посилання + "Не було знайдено в формі вибору довідника"); інакше ФормаВибораСправочніка. Сповістити ОВиборе (ВиборЕл); КонецЕсли; КонецПроцедури

Питання: Чому перестало вибірате значення з форми вибору?


Є на формі документа поле посилального типу ДокументСсилка.ПлатежноеПорученіеІсходящее. При виборі відкривається форма вибору платіжного доручення вихідного. Після того як вибрано значення воно не підставляється в форму як вбрання. Подумав спочатку обробка вибору на стандартна обробка і прогерія забув прописати обробку вибору. Але там все типове. Відкриття форми не програмно, на поле в якому я вибираю ніяких подій не вести. Що може бути?
--- Об'єднання повідомлень, 2 Січня 2018 ---

Ще додаток на звичайних формах. Форма вибору керована, а відкривається зі звичайного вікна. Якщо переключити назад на звичайну форму вибору то все ок.

відповідь:

Загалом розібрався. Поліз подивитися що ж приходить в ВибранноеЗначеніе в обробці вибору. Виявилося масив. Поліз в форми вибору виявилося, що там стоїть галка Множинний вибір. Зняв її і все запрацювало.

Питання: Допоможіть будь ласка задати відбір у формі вибору довідника


При виборі контрагента програмно в форму вибору передаю перші символи назви. Як програмно зробити так, щоб активізувався перший елемент, у якого збігаються перші символи.

відповідь:

elektron сказав (а):

При виборі контрагента програмно в форму вибору передаю перші символи назви. Як програмно зробити так, щоб активізувався перший елемент, у якого збігаються перші символи.

Натисніть, щоб розкрити ...

Вирішено. Зробила на формі вибору довідника "Контрагенти" віртуальну клавіатуру.
При натисканні на будь-яку клавішу спрацьовує код
РезультатПоіскаПоРеквізіту \u003d ТекСпр.НайтіПоНаіменованію (Н, Брехня);
ЕлементиФорми.СправочнікСпісок.ТекущаяСтрока \u003d РезультатПоіскаПоРеквізіту;
де Н змінна, що містить значення клавіші

Питання: Форма вибору з відбором для списку значень


Добрий день. Потрібна Ваша допомога у вирішенні простий завдання.

Конф ЗУП 2 .5 .113 .1 Є зовнішній звіт, у звіту є реквізит "список баз", тип список значень.
Є форма звіту. На формі звіті поле "введення список баз", ТіпЗначенія \u003d "СпісокЗначеній", а тіпЗначеніяСпіска \u003d "СправочнікССилка.ЗначеніеСвойствОб'ектов".

Як відкрити форму вибору з відбором по власнику деякого властивості?

Заздалегідь дякую!

відповідь: На закладці Параметри є колонка Параметри редагування. там можна спробувати налаштувати зв'язку параметрів вибору або параметр вибору

Питання: Програмно відкрити форму вибору документа 1с 8.3


Як програмно відкрити форму вибору документа 1с 8.3 і зберегти вибране значення в змінну?

Гугл давав якісь костилявие рішення, хотілося б знати як правильно.

відповідь: + () Ще у ТЧ є такий чарівний метод - завантажити.

Таблична частина (Tabular section)
Завантажити (Load)
синтаксис:

Завантажити (<Таблица>)
параметри:

<Таблица> (Обов'язковий) Тип: ТабліцаЗначеній.
Таблиця значень, звідки завантажується таблична частина. Колонки таблиць поєднуються за іменами.
опис:

Завантажує табличну частину з таблиці значень. При цьому всі колишні рядки табличній частини видаляються. При завантаженні значення в колонках табличній частині заповнюються значеннями з колонок таблиці значень з однаковими іменами.

доступність:

Сервер, товстий клієнт, зовнішнє з'єднання.
Примітка:

Використання методу допустимо тільки в тому випадку, якщо таблична частина отримана з властивості об'єкта. Якщо таблична частина отримана з властивості посилання (або вибірки), то використання цього методу буде викликати помилку виконання.
приклад:

Состав.Загрузіть (ТабліцаСостава);

Питання: Передача параметрів в форму вибору.


Прошу підказки.
З документа "Реалізація товарів і послуг" викликається форма вибору за договором (ERP). Конф правлена, порівнюю з типовою. У ОбработкеСозданіяНаСервере форми вибору дивлюся в отладчике Параметри.Отбор. Ніяк не можу зрозуміти як список відбору формується - явного виклику цієї форми з параметрами немає, у властивості "СвязіПараметровВибора" тільки один елемент відбору, а в Параметри.Отбор вже кілька. Може хто підкаже де шукати.

THE BELL

Є ті, хто прочитали цю новину раніше вас.
Підпишіться, щоб отримувати статті свіжими.
Email
ім'я
Прізвище
Як ви хочете читати The Bell
без спаму