Як у 1С створити таблицю




Як у 1С створити таблицю



Таблиця значень 1С 8.3 на прикладах

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

Властивістю таблиць значень є:

  • індекси (колекція індексів таблиці значень)
  • колонки (колекція колонок таблиці значень).

Елементом колекції є рядок таблиці значень. Але потрібно враховувати те що, що з таблицею значень можна працювати лише з сервері.

Робота з таблицею значень 1С 8.3 на прикладах

Створити нову таблицю значень

ТЗ =
Новий ТаблицяЗначень;

Додати колонку до таблиці значень

ТЗ.Колонки.Додати("Автомобіль"); ТЗ.Колонки.Додати("Колір"); ТЗ.Колонки.Додати("Клас");

Додати колонку з описом типу

// Необхідно, щоб колонка таблиці значення була строго типізована ОписВага =
Новий ОписТипів("Число",
Новий КваліфікаториЧисла(10,
0)); ТЗ.Колонки.Додати("ВагАвтомобіля", ОписВага,
"Вага Автомобіля");

Додати рядок до таблиці значень

НовийРядок = ТЗ.Додати(); НовийРядок.Автомобіль =
"Mitsubishi"; НовийРядок.Колір =
"Синій"; НовийРядок.Клас =
"C клас"; НовийРядок.Вага =
1500; НовийРядок = ТЗ.Додати(); НовийРядок.Автомобіль =
"KIA"; НовийРядок.Колір =
"Зелений"; НовийРядок.Клас =
"A клас"; НовийРядок.Вага =
1800; НовийРядок = ТЗ.Додати(); НовийРядок.Автомобіль =
"BMW"; НовийРядок.Колір =
"Зелений"; НовийРядок.Клас =
"E клас"; НовийРядок.Вага =
2100;

Заповнити рядок значеннями

/ / Дані Для Заповнення - структура, будівництво іншої таблиці і т.п.
//Метод зіставляє імена властивостей і заповнять за ними значення ЗаповнитиЗначенняВластивостей(ТЗ.Додати(), ДаніДляЗаповнення);

Вставити рядок

//Метод вставляє в таблицю значення новий рядок НовийРядок = ТЗ.Вставити(0);
// Якщо потрібно змінити значення не всіх колонок, то можна використовувати Новий Рядок = ТЗ[0] НовийРядок.Автомобіль =
"Mitsubishi"; НовийРядок.Колір =
"Білий"; НовийРядок.Клас =
"C клас"; НовийРядок.Вага =
1500;

Сортування

//Сортує таблицю значення за потрібними колонками та напрямки сортування
ТЗ.Сортувати («Колір Убувши, Вага Возр»);

Отримати значення

//Припустимо що у рядку №1 зберігається інформація про автомобіль БМВ.
//А колір зберігатися в колонці №2 з ім'ям "Колір"
//Завдання - отримати значення кольору з таблиці значень
//
//Якщо ми знаємо номер рядка та назву властивості: Колір БМВ = ТЗ[0].Колір;
//Якщо ми значимо номер рядка та колонки Колір БМВ = ТЗ[0][1];
// * Відлік номера рядків і колонок починається з 0

Видалити рядок

//Видаляємо рядок №1 з таблиці значень ТЗ.Видалити(ТЗ[0]);
//Видалити рядки за умовою можна за допомогою перебору (див. Обхід таблиці значень)

Знайти один рядок

//Дозволяє знайти один рядок у таблиці значень.
//Шукати можна як по всіх колонках таблиці ШуканийРядок = ТЗ.Знайти("Синій");
//Так і з певної колонці: ШуканийРядок = ТЗ.Знайти("Синій",
"Колір");
//*Метод знаходить перший рядок, що їх потрапив, якщо їх кілька
//Якщо рядок не знайдено, то поверне "Невизначено"

Знайти кілька рядків

// Дозволяє знайти відразу кілька рядків у таблиці значень
//Створюємо структуру для відбору ВідбірПоЗеленомуКвіту =
Новий Структура(); ВідбірПоЗеленомуКвіту.Вставити("Колір","Зелений");
//Отримуємо масив рядків із зеленими машинами Масив зі рядками = ТЗ.ЗнайтиРядки(ВідбірПо ЗеленомуКвіту);

Згорнути таблицю значень

//Дозволяє "згорнути" таблицю значень:
//1С залишає зазначені колонки в першому параметрі і підсумовує колонки з другого параметра ТЗ.Згорнути("Товар",
"Вага");

Копіювати таблицю

//Дозволяє отримати копію таблиці значень. Нова ТЗ = ТЗ.Копіювати();
//Якщо потрібні лише деякі рядки - потрібно вставити масив таких рядків у перший параметр
//Якщо потрібні лише деякі колонки - потрібно вставити їх імена через кому в другий параметр

Копіювати таблицю без даних

//Робить копію таблиці, але й без рядків. Тільки колонки Нова ТЗ = ТЗ.КопіюватиКолонки();

Дізнатися кількість рядків

Наша команда надає послуги з консультування, настроювання та впровадження 1С.
Зв'язатися з нами можна за телефоном +7 499 350 29 00.
Послуги та ціни можна побачити за посиланням.
Будемо раді допомогти Вам!

Очистити

//Очищає таблицю значень від рядків ТЗ.Очистити();

Обхід таблиці значення

Обхід колекції з вибором елемента здійснюється за допомогою циклу >, де оператор циклу Для призначений циклічного повторення операторів, що усередині конструкції, у разі таблиці значень. Також можна звертатися до елемента колекції за допомогою оператора [ ] ([аргумент]), де аргументом є індекс рядка. Нумерація індексів рядків починається із нуля [0].

Прямий обхід

Для
кожного Стор З ТаблицяЗначень Цикл Повідомити(Стор.Номенклатура);
КінецьЦикл;

Зворотний обхід таблиці (знизу догори)

Найчастіше застосовується видалення рядків у таблиці.

//Товари - таблиця значень, де необхідно видалити рядки з "Сума = 0" рах=0;
Поки що рахТовари.Кількість()
Цикл ПоточнийРядок=Товари[рах];
Якщо ПоточнийРядок.Сума=0
Тоді Товари.Видалити(ПоточнийРядок); рах=рах-1;
КінецьЯкщо; рах=рах+1;
КінецьЦикл;

Обхід колонок

Можна перерахувати всі колонки в таблиці значень 1с 8.3 за допомогою циклу >:

Для
кожного Колонка З ТаблицяЗначень.Колонки Цикл Повідомити(Колонка.Ім'я);
КінецьЦикл;

Перетворити структуру на таблицю значень

//Є структура: СтруктураЛогінПароль =
Новий Структура; СтруктураЛогінПароль.Вставити("Логін",
"root"); СтруктураЛогінПароль.Вставити("Пароль",
"1s83.info");
//Створюємо таблицю значень: ТЗ =
Новий ТаблицяЗначень; ТЗ.Колонки.Додати("Логін"); ТЗ.Колонки.Додати("Пароль");
//"Перетворюємо" структуру в таблицю значень:
Для
кожного ПоточнийЕлемент з СтруктураЛогінПароль Цикл НовСтр=ТЗ.Додати(); НовСтр.Логін = ПоточнийЕлемент.Ключ; НовСтр.Пароль = ПоточнийЕлемент.Значення;
КінецьЦикл;

Як працювати з таблицею значень 1С 8.3, 1С 8.2 Таблиця значень 1С 8.3, 1С 8.2 Приклади для розробника 1С

Розглянемо основні прийоми роботи з таблицею значень з допомогою вбудованого мови 1С. Приклади будемо орієнтувати на потребу програміста 1С застосовувати ці способи та прийоми у версіях 1С 8.3 та 1С 8.2

Як відомо, таблиця значень є надзвичайно зручний інструмент для оперування з наборами даних.

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

1С Керовані Форми. Програмне створення таблиці значень та динамічного списку (Частина 2)

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

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

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

Також всі описані в поточному розділі процедури та функції знаходяться у зовнішній обробці УпрФорми.
Приклади програмного створення елементів, команд, реквізитів керованої форми, а також опис стандартних можливостей для роботи з ними можна буде переглянути у частині 1.

Для запуску обробки в режимі підприємства потрібна наявність об'єктів «Довідники.Номенклатура», підпорядкований йому «Довідники.ХарактеристикиНоменклатури» та «РегістриВідомостей.ЦіниНоменклатури».

Створення реквізиту типу таблиця значень та виведення на форму

&На Сервері Процедура пр_СтворитиТаблицюЗначень() МасивДоданихРеквізитів = Новий Масив; //Додати реквізит ТЗ МасивДодаютьсяРеквізитів.Додати(Новий РеквізитФорми("пр_ТаблицяЗначень", Новий ОписТипів("ТаблицяЗначень")))); //Додати кожну колонку як окремий реквізит МасивДодаютьсяРеквізитів.Додати(Новий РеквізитФорми("Період", Новий ОписТипів("Дата")).Новий КваліфікаториДати(ЧастиниДати.Дата)),"пр_ТаблицяЗначень" ,"Період")); МасивДодаютьсяРеквізитів.Додати(Новий РеквізитФорми("Номенклатура", Новий ОписТипів("ДовідникПосилання.Номенклатура"),"пр_ТаблицяЗначень" ,"Номенклатура")); МасивДодаютьсяРеквізитів.Додати(Новий РеквізитФорми("Характеристика", Новий ОписТипів("ДовідникПосилання.ХарактеристикиНоменклатури"),"пр_ТаблицяЗначень","Характеристика")); МасивДодаютьсяРеквізитів.Додати(Новий РеквізитФорми("ВідЦіни", Новий ОписТипів("ДовідникПосилання.ВідиЦен"),"пр_ТаблицяЗначень", "Вигляд ціни")); МасивДодаютьсяРеквізитів.Додати(Новий РеквізитФорми("Ціна", Новий ОписТипів("Число", ,,Новий КваліфікаториЧисла(15,2)), "пр_ТаблицяЗначень", "Ціна")); ЗмінитиРеквізити(МасивРеквізитів, що додаються); КінецьПроцедури &НаСервере Процедура пр_ВивестиТаблицюЗначень() пр_ВивестиТаблицюНаФорму(ЕтаФорма, "пр_ТаблицяЗначень", Елементи["пр_Сторінка2"], "Таблиця цін"); КінецьПроцедури &НаСервері Процедура пр_ВвестиТаблицюНаФорму(Форма, Ім'яТаблиці, Батько, ЗаголовокТаблиці) Експорт ТаблицяФорми = Форма.Елементи.Додати(Ім'яТаблиці, Тип("ТаблицяФорми"), Батько); ТаблицяФорми.ШляхКДанним = Ім'яТаблиці; ТаблицяФорми.Заголовок = ЗаголовокТаблиці; ТаблицяФорми.ПоложенняЗаголовка = ПоложенняЗаголовкаЕлементуФорми.Верх; ТаблицяФорми.ЗмінюватиПорядокСторок = Брехня; ТаблицяФорми.ЗмінюватиСкладСторок = Брехня; ТаблицяФорми.ДозволитиПочатокПеретягування = Брехня; СтруктураВластивостей = Новий Структура(); пр_ДодатиНовуКолонку(Форма, ТаблицяФорми, Ім'яТаблиці, "Період"); пр_ДодатиНовуКолонку(Форма, ТаблицяФорми, Ім'яТаблиці, "Номенклатура"); пр_ДодатиНовуКолонку(Форма, ТаблицяФорми, Ім'яТаблиці, "Характеристика"); пр_ДодатиНовуКолонку(Форма, ТаблицяФорми, Ім'яТаблиці, "ВідЦіни");пр_ДодатиНовуКолонку(Форма, ТаблицяФорми, Ім'яТаблиці, "Ціна", СтруктураВластивостей); КінецьПроцедури &НаСервері Процедура пр_ДодатиНовуКолонку(Форма, ТаблицяФорми, Ім'яТаблиці, Ім'яКолонки, СтруктураВластивостей = Невизначено) НоваКолонка = Форма.Елементи.Додати(Ім'яТаблиці+Ім'яКолонки, Тип НоваКолонка.Заголовок = Ім'яКолонки; НоваКолонка.ШляхКДаним = Ім'яТаблиці + "." + Ім'яКолонки; НоваКолонка.Вигляд = ВидПоляФорми.ПолеВводу; Якщо НЕ СтруктураВластивостей = Невизначено Тоді Для Кожного КлючЗначення З СтруктураВластивостей Цикл Спроба НоваКолонка[КлючЗначення.Ключ] = СтруктураВластивостей[КлючЗначення.Ключ]; Виняток КінецьСпроби; КінецьЦикл; КінецьЯкщо; КінецьПроцедури

Додавання умовного оформлення таблиці форми

Створюємо умовне оформлення для таблиці:

  • якщо реквізит форми Використання (тип Булев) = Істина, тоді дозволяємо змінювати ціну в рядках таб. частини;
  • якщо в рядку таб частини ціна не заповнена, то виділятиме фон осередку «Ціна» рожевим.
&На Сервері Процедура пр_ДодатиУОТаблиціФорми() //умовне оформлення форми //якщо реквізит Використання = Істина, то дозволяти змінювати ціну ЕлементОформлення = УмовнеОформлення.Елементи.Додати(); // Створюємо умову відбору у створеній групі: ЕлементВідбору = ЕлементОформлення. ЕлементОтбора.ЛевоеЗначение = Новий ПолеКомпонівкиДаних("пр_Выкористання"); // ім'я поля ЕлементОтбора.Вид Порівняння = ВидПорівнянняКомпонівкиДаних.Рівне; // або задаємо свій ЕлементОтбора.ПравоеЗначение = Брехня; ЕлементОтбору.Використання = Істина; // Установка значення елемента УО ЕлементОформлення.Оформлення.ВстановитиЗначенняПараметра("Доступність", Брехня); ЕлементОформлення. Використання = Істина; ЕлементОформлення.Оформлення.УстановитиЗначенняПараметра("КольорТексту", WebКольори.ЧервоноФіолетовий); ЕлементОформлення. Використання = Істина; // Створюємо поля оформлення ПолеОформлення = ЕлементОформлення.Поля.Елементи.Додати(); //щоб виділити комірку, потрібно вказати ім'я відповідного елемента на формі ПолеОформлення.Поле = Новий ПолеКомпонівкиДаних("пр_ТаблицяЗначеньЦіна"); ПолеОформлення.Використання = Істина; // умовне оформлення форми // якщо в рядку ціна = 0, тоді рядок зафарбовуємо рожевим елементом оформлення = умовне оформлення. елементи. Додати (); // Створюємо умову відбору у створеній групі: ЕлементВідбору = ЕлементОформлення. ЕлементОтбору.ЛівеЗначення = Новий ПолеКомпонівкиДаних("пр_ТаблицяЗначень.Ціна"); // ім'я поля ЕлементОтбору.ВидПорівняння = ВидПорівнянняКомпонівкиДаних.НеЗаполнено; // або задаємо свій ЕлементОтбора.Використання = Істина; // Установка значення елемента УОЕлементОформлення.Оформлення.УстановитиЗначенняПараметра("КолірФона", WebКольори.Рожевий); ЕлементОформлення. Використання = Істина; // Створюємо поля оформлення //щоб виділити весь рядок, потрібно додати всі осередки рядка, поки ж виділимо один осередок "Ціна" ПолеОформлення = ЕлементОформлення.Поля.Елементи.Додати(); ПолеОформлення.Поле = Новий ПолеКомпонівкиДаних("пр_ТаблицяЗначеньЦіна"); ПолеОформлення.Використання = Істина; КінецьПроцедури

У процедуру команди додамо виклик серверної процедури для заповнення таблиці цін залежно від обраної номенклатури та характеристики:

&НаКлієнті Процедура пр_Команда1(Команда) пр_Команда1НаСервері(); КінецьПроцедури &НаСервері Процедура пр_Команда1НаСервері() ЦяФорма["пр_ТаблицяЗначень"].Очистити(); Запит = Новий Запит; Запит.ВстановитиПараметр("Номенклатура", ЕтаФорма.пр_Номенклатура); Запит.ВстановитиПараметр("Характеристика", ЭтаФорма.пр_Характеристика); Запит.Текст = "ВИБРАТИ | ЦіниНоменклатуриСрезОстанніх.Період ЯК Період, | ЦіниНоменклатуриСрезОстанніх.Номенклатура ЯК Номенклатура, | ЦіниНоменклатуриСрезОстанних.Ціна ЯК Ціна |З | Вибірка = Запит.Виконати().Вибрати(); Поки Вибірка.Наступний() Цикл Стор = ЦяФорма["пр_ТаблицяЗначень"].Додати(); ЗаповнитиЗначенняВластивостей(Стор, Вибірка); КінецьЦикл; КінецьПроцедури

Додаємо в процедуру При створенні на сервері процедури:

&НаСервере Процедура пр_ПриСтворенніНаСервері(Відмова, СтандартнаОбробка) //встановимо заголовок форми ЕтаФорма.Заголовок = "Шаблон для програмної роботи з реквізитами, командами та елементами форми"; ЦяФорма.АвтоЗаголовок = Брехня; пр_СтворитиГрупи(); пр_Створити Нову Команду (); пр_Створити Декорацію (); пр_СтворитиРеквізити(); пр_ВидалитиРеквізити(); пр_ВивестиРеквізитиНаФорму(); пр_Створити ТаблицюЗначень(); пр_ВивестиТаблицюЗначень(); пр_ДодатиУОТаблиціФорми(); КінецьПроцедури

Заповнюємо реквізити Номенклатура, Характеристика та заповнюємо ціни у таблиці значень.

Створення реквізиту типу динамічний список із заданими налаштуваннями та виведення на форму

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

Умовне оформлення динамічного списку 1С програмно

Додамо Умовне Оформлення динамічного списку, відбір та сортування програмно.

&На сервері Процедура пр_Створити Динамічний Список () // Створити дин. список з довільним запитом ТекстЗапроса = "ВИБРАТИ | ЦіниНоменклатури.Період ЯК Період, | ЦіниНоменклатури.Номенклатура ЯК Номенклатура, | ЦіниНоменклатури. Характеристика ЯК Характеристика, | .Реєстратор ЯК Реєстратор | З |РегістрЗведений.ЦіниНоменклатури ЯК ЦіниНоменклатури |ДЕ |Номенклатури. МасивДодаютьсяРеквізитів = Новий Масив; // Створити реквізит дин. списку МасивДодаютьсяРеквізитів.Додати(Новий РеквізитФорми("пр_ДинамічнийСписок", Новий ОписТипів("ДинамічнийСписок")).Брехня)); ЗмінитиРеквізити(МасивРеквізитів, що додаються); РеквізитДинамічнийСписок = ЦяФорма["пр_ДинамічнийСписок"]; //якщо запит не довільний, тоді використовуємо наступний код: //РеквізитДинамічнийСписок.ДовільнийЗапит = Брехня; // Реквізит Динамічний Список. Основна Таблиця = "Регістр Відомостей. Ціни Номенклатури"; Реквізит Динамічний Список. Довільний Запит = Істина; Реквізит Динамічний Список. Основна Таблиця = "Регістр Відомостей. Ціни Номенклатури"; РеквізитДинамічнийСписок.ТекстЗапроса = ТекстЗапроса; РеквізитДинамічнийСписок.Параметры.УстановитьЗначенняПараметра("Номенклатура", ЭтаФорма["пр_Номенклатура"]); РеквізитДинамічнийСписок.Параметры.УстановитьЗначенняПараметра("Характеристика", ЭтаФорма["пр_Характеристика"]); //Не виводитимемо цю колонку в списку, але потрібен до неї доступ завжди РеквізитДинамічнийСписок.ВстановитиОбов'язковеВикористання("Реєстратор", Істина); КінецьПроцедури &НаСервері Процедура пр_ДодатиВідбірДинамічнийСписок() ЕлементВідбору = ЦяФорма["пр_ДинамічнийСписок"]. ЕлементОтбора.ЛевоеЗначение = Новий ПолеКомпонівкиДаних("Період"); ЕлементОтбора.Вид Порівняння = ВидПорівнянняКомпонівкиДаних.Більше; // більше чи менше тощо.ЕлементОтбору.Використання = Істина; ЕлементОтбору.ПравоеЗначення = Дата ('2015.01.01 00:00:00'); КінецьПроцедури &На Сервері Процедура пр_ДодатиУОДинамічнийСписок() //якщо ціна від 4000 до 5000, то виділяти зеленим ЕлементОформлення = ЦяФорма["пр_ДинамічнийСписок"].УмовнеОформлення.Елементи.Додати(); // Спочатку додамо групу І Група Оформлення = Елемент Оформлення. Відбір. Елементи. Група Оформлення. Використання = Істина; ГрупаОформлення.ТипГрупи = ТипГрупиЕлементівВідборуКомпонівкиДаних.ГрупаІ; // Створюємо умову відбору у створеній групі: ціна > 4000 ЕлементВідбору = Група Оформлення. Елементи. ЕлементОтбора.ЛевоеЗначение = Новий ПолеКомпонівкиДаних( "Ціна"); // ім'я поля ЕлементОтбору.Вид Порівняння = ВидПорівнянняКомпонівкиДаних.Більше; // або задаємо свій ЕлементОтбора.ПравоеЗначение = 4000; //правим значенням може виступати ПолеКомпонуванняДаних форми або списку //ЕлементОтбору.ПравоеЗначение = Новий ПолеКомпонівкиДаних(Ім'яПоля); ЕлементОтбору.Використання = Істина; //Другий елемент відбору: ціна < 5000 ЕлементОтбору = ГрупаОформлення. ЕлементОтбора.ЛевоеЗначение = Новий ПолеКомпонівкиДаних("Ціна"); // ім'я поля ЕлементОтбору.Вид Порівняння = ВидПорівнянняКомпонівкиДаних.Менше; // або задаємо свій ЕлементОтбора.ПравоеЗначение = 5000; ЕлементОтбору.Використання = Істина; // Установка значення елемента УО Елемент Оформлення. Оформлення. // Можливе звернення як у індексу і установка через метод //Элемент =ЕлементОформлення.Оформлення.Елементи [0]; //Елемент.Значення = Колір; ЕлементОформлення. Використання = Істина; // Створюємо поля оформлення ПолеОформлення = ЕлементОформлення.Поля.Елементи.Додати(); //щоб виділити комірку, потрібно вказати її ім'я поля ПолеОформлення.Поле = Новий ПолеКомпонівкиДаних("Період"); ПолеОформлення = ЕлементОформлення.Поля.Елементи.Додати(); ПолеОформлення.Поле = Новий ПолеКомпонівкиДаних("Номенклатура"); ПолеОформлення = ЕлементОформлення.Поля.Елементи.Додати(); ПолеОформлення.Поле = Новий ПолеКомпонівкиДаних("Характеристика"); ПолеОформлення = ЕлементОформлення.Поля.Елементи.Додати(); ПолеОформлення.Поле = Новий ПолеКомпонівкиДаних("ВідЦіни"); ПолеОформлення = ЕлементОформлення.Поля.Елементи.Додати(); ПолеОформлення.Поле = Новий ПолеКомпонівкиДаних("Ціна"); ПолеОформлення.Використання = Істина; КінецьПроцедури &НаСервері Процедура пр_ДодатиСортуванняДинамічнийСписок() ЕлементСортування = ЦяФорма["пр_ДинамічнийСписок"].Порядок.Елементи.Додати(Тип("ЕлементПорядкуКомпонуванняДаних")); ЕлементСортування.Поле = Новий ПолеКомпонівкиДаних("Період"); ЕлементСортування.ТипУпорядкування = НапрямокСортуванняКомпонуванняДаних.Зменшений; ЕлементСортування. Використання = Істина; КінецьПроцедури

Вивести динамічний список до елементів керованої форми 1С

Для виведення дин. список скористаємося процедурами, які використовували при виведенні таблиці значень, так як це один тип - Дані Форми Колекція.

&НаСервері Процедура пр_ВивестиДинамічнийСписок() пр_ВивестиДинамічнийСписокНаФорму(ЕтаФорма, "пр_ДинамічнийСписок", Елементи["пр_Сторінка3"], "Таблиця цін"); КінецьПроцедури Процедура пр_ВивестиДинамічнийСписокНаФорму(Форма, Ім'яТаблиці, Батько, ЗаголовокТаблиці) Експорт ТаблицяФорми = Форма.Елементи.Додати(Ім'яТаблиці, Тип("ТаблицяФорми"), Батько); ТаблицяФорми.ШляхКДанним = Ім'яТаблиці; ТаблицяФорми.Заголовок = ЗаголовокТаблиці; ТаблицяФорми.ПоложенняЗаголовка = ПоложенняЗаголовкаЕлементуФорми.Верх; СтруктураВластивостей = Новий Структура("Вид", ВидПоляФорми.ПолеНаписи); //якщо потрібні якісь специфічні властивості колонки, то потрібно їх додати до структури властивостей пр_ДобавітьНовуКолонку(Форма, ТаблицяФорми, Ім'яТаблиці, "Період", СтруктураВластивостей); пр_ДодатиНовуКолонку(Форма, ТаблицяФорми, Ім'яТаблиці, "Номенклатура", СтруктураВластивостей); пр_ДодатиНовуКолонку(Форма, ТаблицяФорми, Ім'яТаблиці, "Характеристика", СтруктураВластивостей); пр_ДодатиНовуКолонку(Форма, ТаблицяФорми, Ім'яТаблиці, "ВідЦіни", СтруктураВластивостей); пр_ДодатиНовуКолонку(Форма, ТаблицяФорми, Ім'яТаблиці, "Ціна", СтруктураВластивостей); КінецьПроцедури

Оновити динамічний список 1С програмно

Розглянемо як оновити параметри динамічного списку 1С програмно. Якщо у запиті дин. списку використовуються параметри, їх необхідно оновлювати при зміні відповідних реквізитів.

&На Сервері Процедура пр_ОновитиПараметрДінСписків(Ім'яЕлементу, ТекПосилання) РеквізитДинамічнийСписок = ЦяФорма["пр_ДинамічнийСписок"]; РеквізитДинамічнийСписок.Параметри.ВстановитиЗначенняПараметра(ІмяЕлементу, ТекПосилання); КінецьПроцедури &НаКлієнті Процедура пр_НоменклатураПриЗміні(Елемент) пр_ОновитиПараметрДінСписків("Номенклатура", ЦяФорма["пр_Номенклатура"]); КінецьПроцедури &НаКлієнті Процедура пр_ХарактеристикаПриЗміні(Елемент) пр_ОновитиПараметрДінСписків("Характеристика", ЦяФорма["пр_Характеристика"]); КінецьПроцедури

Додаємо в процедуру При створенні на сервері процедури:

&НаСервере Процедура пр_ПриСтворенніНаСервері(Відмова, СтандартнаОбробка) //встановимо заголовок форми ЕтаФорма.Заголовок = "Шаблон для програмної роботи з реквізитами, командами та елементами форми"; ЦяФорма.АвтоЗаголовок = Брехня; пр_СтворитиГрупи(); пр_Створити Нову Команду (); пр_Створити Декорацію (); пр_СтворитиРеквізити(); пр_ВидалитиРеквізити(); пр_ВивестиРеквізитиНаФорму(); пр_Створити Динамічний Список (); пр_ДодатиВідбірДинамічнийСписок(); пр_ДодатиСортуванняДинамічнийСписок(); пр_ДодатиУОДинамічнийСписок(); пр_Вивести Динамічний Список (); КінецьПроцедури

Заповнюємо реквізити Номенклатура, Характеристика та заповнюємо ціни у таблиці значень.

Вміст регістру відомостей ЦіниНоменклатури:

Динамічний список на формі:

Схожі статті

  • Як створити в гугл диску таблицю
  • Як створити таблицю у програмі XL
  • Як створити електронну таблицю в Excel
  • Як створити таблицю для звіту
  • Як створити блокнот на ноутбуці
  • Як створити помаранчеве світло
  • Як створити круглий друк у ворді
  • Як створити колос
  • Недавні статті

  • Як бродить зернова брага
  • Що робити якщо не засмагаєш на сонці чому засмага погано лягає на шкіру або перестає прилипати
  • Як швидко зняти гель лак без апарату
  • Як робиться Каті голови
  • Яка гребінець краще для об'єму
  • Чим роблять м'яку покрівлю
  • Чи можна залишати крем для обличчя на ніч
  • Де знаходиться датчик селектора
  • географія нашої діяльності
    вулиця Драгоманова, 27
    вул. Курчатова 1Б
    вул. Міцкевича 130
    вул. Лабунського, 1
    вул. Макарова-Пржевальського
    вул. Толстого 10
    вул. Грушевського 28
    вул. Перший промінь (Черняхівського)
    напишіть нам

    сообщение успешно отправлено
    x