Контакти

1с сортування у таблиці

Для того, щоб враховувати гроші та товари, у бізнесі широко використовують різні таблиці. Майже кожний документ – це таблиця.

В одній таблиці перераховані товари для відвантаження зі складу. В іншій таблиці – зобов'язання щодо оплати цих товарів.

Тому в 1С чільне місце займає робота з таблицями.

Таблиці 1С також називають «табличні частини». Вони є у довідників, документів та інших.

Запит в результаті виконання повертає таблицю, доступ до якої можна отримати двома різними способами.

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

//Варіант 1 – послідовний доступ до результатів запиту

//отримання таблиці
Вибірка = Запит.Виконати().Вибрати();
//по порядку обходимо всі рядки результату запиту
Поки Вибірка.Наступний() Цикл
Повідомити(Вибірка.Найменування);
КінецьЦикл;

//Варіант 2 – вивантаження таблицю значень
Запит = Новий Запит («ВИБРАТИ Найменування З Довідник. Номенклатура»);
//отримання таблиці
Таблиця = Запит.Выполнить().Выгрузить().
//Далі можемо також обійти всі рядки
Для кожного Рядок з Таблиця Цикл
Повідомити (Рядок.Найменування);
КінецьЦикл;
//або довільно звертатися до рядків
Рядок = Таблиця. Знайти («Лопата», «Найменування»);

Важлива особливість – у таблиці, яка отримана з результату запиту, всі колонки будуть типово типізовані. Це означає, що запитавши поле Найменування із довідника Номенклатура, Ви отримаєте колонку виду Рядка з допустимою довжиною не більше N символів.

Таблиця на формі (товстий клієнт)

Користувач працює із таблицею, коли вона розміщена на формі.

Базові принципи роботи з формами ми з Вами обговорювали в уроці з і в уроці з

Отже, розмістимо таблицю на формі. Для цього можна перетягнути таблицю з панелі елементів керування. Аналогічно можна вибрати в меню Форма/Вставити елемент керування.

Дані можуть зберігатися в конфігурації – тоді потрібно вибрати існуючу (раніше додану) табличну частину об'єкта конфігурації, форму якого Ви редагуєте.

Натисніть кнопку «…» у властивості Дані. Щоб побачити список табличних частин, потрібно розкрити гілку Об'єкт.

При виборі табличної частини 1С сама додасть колонки таблиці на формі. Рядки введені користувачем у таку таблицю зберігатимуться автоматично разом із довідником/документом.

У цьому ж властивості Дані Ви можете ввести довільне ім'я і вибрати тип ТаблицяЗначень.

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

Натиснувши правою кнопкою на таблиці, Ви можете додати колонку. У властивості колонки можна вказати його ім'я (для звернення в коді 1С), заголовок колонки на формі, зв'язок з реквізитом табличної частини (останнє – якщо обрано не довільну таблицю, а табличну частину).

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

Щоб керувати таблицею, потрібно вивести форму командну панель. Виберіть пункт Форма/Вставити елемент керування/Командна панель.

У властивостях командної панелі виберіть пункт Автозаповнення, щоб кнопки на панелі з'явилися автоматично.

Таблиця на формі (тонкий/керований клієнт)

На керованій формі зазначені дії виглядають трохи інакше. Якщо Вам потрібно розмістити на формі табличну частину, розкрийте гілку Об'єкт і перетягніть одну з табличних частин ліворуч. І все!

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

Щоб додати колонки, використовуйте меню правою кнопкою миші на цьому реквізиті форми, пункт Додати колонку реквізиту.

Після цього перетягніть таблицю вліво.

Щоб у таблиці з'явилася командна панель, у властивостях таблиці виберіть значення у розділі Використання – Положення командної панелі.

Вивантаження таблиці в Excel

Будь-яку таблицю 1С, розташовану на формі, можна роздрукувати чи вивантажити до Excel.

Для цього клацніть правою кнопкою миші на вільному місці в таблиці та виберіть пункт Вивести список.

У керованому (тонкому) клієнт аналогічні дії можна виконати за допомогою пункту меню Усі дії/Вивести список.

Таблиця значень у платформі 1С 8.3 (8.2) – це універсальна колекція значень, яку розробник може використовувати при програмній розробці для реалізації своїх алгоритмів. По суті, таблиця значень 1С є динамічний набір значень, що мають колонки і стовпці.

Статті про інші універсальні колекції значень в 1С

Вивчайте програмування в 1С у місці з моєї книги «Програмувати в 1С за 11 кроків»

  1. Книга написана зрозумілою та простою мовою – для новачка.
  2. Навчіться розуміти архітектуру 1С;
  3. Станете писати код мовою 1С;
  4. Опануйте основні прийоми програмування;
  5. Закріпіть отримані знання з допомогою задачника;

Відмінний посібник з розробки в керованому додатку 1С, як для розробників-початківців, так і для досвідчених програмістів.

  1. Дуже доступна та зрозуміла мова викладу
  2. Книга надсилається на електронну пошту у форматі PDF. Можна відкрити будь-який пристрій!
  3. Зрозумієте ідеологію керованого додатка 1С
  4. Дізнаєтеся, як розробляти керовану програму;
  5. Навчіться розробляти керовані форми 1С;
  6. Зможете працювати з основними та потрібними елементами керованих форм
  7. Програмування під керованим додатком стане зрозумілим

Промо-код на знижку в 15% 48PVXHeYu


Якщо Вам допоміг цей урок вирішити якусь проблему, сподобався чи виявився корисним, то Ви можете підтримати мій проект, перерахувавши будь-яку суму:

можна сплатити вручну:

Яндекс.Гроші — 410012882996301
Web Money - R955262494655

Вступайте до моїх груп.

Вітаю всіх читачів infostart'a. Ця стаття буде присвячена питанню створення довільної таблиці значень на формі керованого додатку програмним способом.

Особливості задачі.

Кожен, хто програмував у звичайному додатку, часто стикався із завданням отримання довільної таблиці значень на формі. Під довільною таблицею значень розуміється таблиця, кількість і тип колонок якої наперед невідомо. Тобто колонок може бути 3, а може 6, а може 8. У звичайному додатку все просто: можна було на формі обробки розмістити елемент ТаблицяЗначень,і потім передати в цей елемент створену таблицю значень програмним способом. Потім простою командою:

ЕлементиФорми.ТабличнеПоле.СтворитиКолонки();

одержати готову таблицю значень на формі. Здавалося б, що може бути простішим.

Це все було у звичайному додатку. У керованому додатку все змінилося. Так просто довільну таблицю не створити. Тепер потрібно або жорстко параметризувати таблицю значень на формі, або створювати її програмним способом (описувати, ну, в цьому, власне, і суть керованого додатка). Це ми спробуємо зробити: програмними засобами створити довільну таблицю значень на керованій формі.

Рішення завдання.

Перше, що ми маємо зробити, це визначити, як таблиця з'явиться на формі. Головне, що ніякого елемента форми в обробці не потрібно створювати. Ми його створимо програмним способом, як і всю таблицю. Тобто таблиця буде описана, і створюватись у момент відкриття форми або за допомогою кнопки – це кому як треба.

Створення таблиці формою відбувається через опис таблиці значень як реквізиту:
МасивТипуВибору = Новий Масив; МасивТипуВибору.Додати(Тип("ТаблицяЗначень")); ОписТипуВибору = Новий ОписТипів(МасівТипуВибору); МасивРеквізитів = Новий Масив; МасивРеквізитів.Додати(Новий РеквізитФорми("ТаблицяРозклади", ОписТипуВибору, "", "ТЗН"))); Тепер ми маємо створити програмну таблицю значень, що містить дані. Якщо таблиця значень буде отримана із запиту, то все більше - менший порядок. Якщо таблиця створюється вручну, значення колонок, які будуть містити числа або дати можуть бути створені через «ОписТипів». Суть у тому, що колонки у таблиці значень обов'язково повинні мати якийсь тип. Якщо, наприклад, передбачається, що користувач заповнюватиме дані в цих колонках інтерактивно, то не можна додавати колонку таблиці значень просто з ім'ям, вона повинна мати тип. Майте на увазі – це дуже важливо. ці типи ми передамо до таблиці на формі.
Створюємо таблицю, яка містить кілька колонок:
КД = Новий КваліфікаториДати(ЧастиниДати.Час); МасивКД = Новий Масив; МасивКД.Додати(Тип("Дата")); Опис Типів Час = Новий Опис Типів (Масив КД, КД); ТЗ = Новий ТаблицяЗначень;
ТЗ.Колонки.Додати("С", ОписТипівЧас);
ТЗ.Колонки.Додати("До", ОписТипівЧас);
ТЗ.Колонки.Додати("ПІБ");
Далі ми заповнимо нашу програмну таблицю ТЗ потрібними даними. Отримуємо таблицю ТЗ, яка містить необхідні значення та готова до передачі у створений реквізит форми. Для кожного Колонка З ТЗ.Колонки Цикл

МасивРеквізитів.Додати(Новий РеквізитФорми(Колонка.Ім'я, Колонка.ТипЗначення,"ТаблицяРозклади"));
КінецьЦикл;
ЗмінитиРеквізити(МасивРеквізитів);
ТаблицяПолівВибору = Елементи.Додати("ТЗН", Тип("ТаблицяФорми"));
ТаблицяПолівВибору.ШляхКДаним = "ТаблицяРозклади";
ТаблицяПолейВибора.Відображення = ВідображенняТаблиці.Список;

Ось така нехитра комбінація, і наша таблиця готова.

Для кожного Колонка З ТЗ.Колонки Цикл

НовийЕлемент = Елементи.Додати(Колонка.Ім'я, Тип("ПолеФорми"), ТаблицяПолівВибору);
НовийЕлемент.Вигляд = ВидПоляФорми.ПолеВводу;
НовийЕлемент.ШляхКДаним = "ТаблицяРозклади." + Колонка.Ім'я;
НовийЕлемент.Шіріна = 10;
КінецьЦикл;

Умовне оформлення, якщо нам потрібно, ми також пишемо вручну, командне меню – вручну. Обробники таблиці також пишуться руками. Наприклад, щоб додати обробник події таблиці «Вибір»:

ТаблицяПолівВибору.ВстановитиДію("Вибір","ТЗНВибір");

Для обробки цієї події у формі процедури прописується окрема процедура:

&На Клієнті
Процедура ТЗНВибір(ТЗ, ОбранийРядок, Поле, СтандартнаОбробка)
//Команда обробника КінецьПроцедури

Зверніть увагу, що обробники таблиці спрацьовують на клієнті і тому повинні мати команду вказівник компілятора

&На Клієнті

Ну, і останнє, що хотілося додати, що після всіх цих дій обов'язково не забуваємо передати готову таблицю до реквізиту форми:

ЗначенняВРеквізитФорми(ТЗ, "ТаблицяРозклади");

Ось що маємо в результаті:


А ось обробка події "Вибір":



Післямова.

Сподіваюся, стаття допоможе тим програмістам 1С, які починають створювати таблиці на формі програмним способом.

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

таблиця значень 1С

Таблиця значень 1Свикористовується для оперативного зберігання даних та їх обробки. При великій кількості рядків швидкість пошуку даних різко знижується. Багато програмістів недооцінюють важливість застосування індексів при пошуку інформації в таблиці значень. Я маю намір показати вам, що застосування індексів прискорює роботу з ТЗ ( таблиця значень 1С) до 100 разів.

Отже, для тестування створив невеликий код, який працює приблизно так.

  • Витягується 20 тисяч рядків із табличної частини документа "Реалізація" до таблиці значень. Називається вона Т1.
  • Зробив копію цієї таблиці значень, другу таблицю, назвав її Т2. Отже, вийшло 2 таблиці значень, Т1 та Т2, у кожній по 20 тисяч рядків.
  • Далі у циклі від 1 до 5 ми робимо п'ять проходів. Прохід полягає в наступному:
  • У циклі (який вкладено цикл від 1 до 5) перебираються всі рядки таблиці значень Т1, все 20 тисяч рядків.
  • Для кожного поточного рядка Т1 витягаємо з таблиці значень Т1 значення колонці "Сума" - це число.
  • Шукаємо рядок у таблиці значень Т2, що містить у колонці "Сума" теж саме число, яке витягли на попередньому кроці.
  • Вимірюємо час кожного проходу в мілісекундах та виводимо на екран.

Іншими словами, перебираючи всі рядки однієї таблиці значень 1С і запам'ятовуючи значення стовпця "Сума", ми шукаємо в іншій таблиці значень рядок з тією самою сумою. Використовується метод таблиці значень "Знайти". В одному проході операція пошуку виконується 20 тисяч разів. Проходів лише п'ять. Вони необхідні усереднення результатів експерименту.

Нижче Ви бачите таблицю результатів роботи тесту. Другий стовпець відображає час виконання кожного з п'яти проходів у звичайному, не оптимізованому варіанті запуску, а під стовпцем стоїть сумарний час виконання тесту, що дорівнює 279641 мілісекунди, або приблизно 279 секунд. У третьому стовпці показано час виконання того ж тесту, але з оптимізованим варіантом пошуку, з використанням індексу у таблиці значень. Для наочності я додав у табличку час, що витрачається створення індексу (перша рядок під заголовком), воно дуже мало, всього 0, 047 секунди. Сумарний час виконання тесту у другому варіанті дорівнює 2781 мілісекунди, або 2,78 секунди.

Отже, у першому варіанті маємо – 279 секунд, у другому варіанті – 2,78 секунд. Різниця у 100 разів! Причому, таке прискорення досягається додаванням ОДНІЙ РЯДКИ КОДУ!

Час виконання, мілісекунди
№ тестового запуску 1 варіант, звичайний 2 варіант, оптимальний
час створення індексу - 47
1 46531 563
2 55516 547
3 60969 531
4 58688 562
5 57937 531
Підсумковий час 279641 2781
Прискорення в раз: 100,5541172

Ось повний код прикладу:

Процедура кнІндексТаблиціЗначеньНатискання(Елемент) // створюємо запит для вибірки данихЗапит = Новий Запит; Запит. Текст = "ВИБРАТИ ПЕРШІ 20000 | РеалізаціяТовари.Посилання, | РеалізаціяТовари.НомерРядки, | РеалізаціяТовари.Кількість, | РеалізаціяТовари.Сума, | РеалізаціяТовари.Товар |З | Документ.Реалізація.Товари ЯК РеалізаціяТовари"; // поміщаємо вибрані дані у таблицю значень Т1Т1 = Запит. Виконати (). Вивантажити (); // Створюємо таблицю значень Т2 шляхом копіювання вмісту таблиці значень Т1Т2 = Т1. Копіювати() ; Поч ДодаванняІндексу = ОтриматиЧасВМиллисекундах() ; Т2. Індекси. Додати ("Сума"); // Ось це найважливіша строчка, додавання індекса по колонці "Сума"КонДодаванняІндексу = ОтриматиЧасВМиллисекундах() ; Повідомити ( "Час додавання індексу"+ (КонДобавленняІндексу - ПочДобавленняІндексу) + "мс" ) ; Повідомити ( "Усього рядків у нашій таблиці значень: "+ Т2. Кількість ()); // організуємо цикл із п'яти проходів, по суті - п'ять разів проганяємо тестДля Сч = 1 По 5 Цикл Початок = ОтриматиЧасВМиллисекундах() ; // запам'ятовуємо час початкуЗнайденоРаз = 0; Для Кожного Стр З Т1 Цикл // перебираємо всі рядки таблиці Т1 Обробка Переривання Користувача() ; // шукаємо в таблиці Т2 рядок, в якому колонка "Сума" // збігається з поточним значенням "Сума" таблиці Т1Знайдена Рядок = Т2. Знайти (Стор. Сума, "Сума"); // Якщо збіг зафіксовано (рядок знайдено), збільшуємо лічильник знайдених рядківЯкщо ЗнайденаРядок<>Невизначено Тоді ЗнайденоРаз = ЗнайденоРаз + 1; КінецьЯкщо ; Кінець циклу; // Отримуємо час завершення циклу перебору рядків таблиці Т1Кінець = ОтриматиВремяВМиллисекундах() ; // повідомляємо номер проходу тесту, кількість знайдених збігів та час виконання у мілісекундахПовідомити ("Прохід №" + Сч); Повідомити ("Знайдено разів:" + ЗнайденоРаз) ; Повідомити ( "Час виконання "+ Рядок (Кінець-Початок) + "мілісекунд"); Кінець циклу; // Йдемо робити наступний прохідКінецьПроцедури


Приклад прокоментовано і має бути зрозумілим. Головне полягає у рядку Т2.Індекси.Додати("Сума");Ми повідомляємо 1С, що ми збираємося виконувати операцію пошуку по колонці "Сума", у таблиці значень Т1 та вимагаємо створити індекс по цій колонці. Система створює індекс і далі при всіх операціях пошуку по колонці "Сума" використовує його автоматично. Слід зазначити, що створений індекс діє лише пошуку по колонці " Сума " , оскільки створено цієї колонки. Якщо нам потрібні інші колонки для пошуку, слід створити відповідні індекси із зазначенням потрібних імен колонок.

До однієї таблиці ми можемо створити кілька індексів, якщо збираємося шукати значення для різних стовпців. Індекси зберігаються у колекції індексів таблиці значень 1С, що випливає з коду: ТЗ.Індекси.Додати(Ім'яКолонки)

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

МасивЗнайденихРядок = Т2.ЗнайтиРядки(Новий Структура("Кількість, Сума", ШуканаКількість, ШуканаСумма));

Використовувані у тексті прикладу.
З повагою, Дегтярьов Роман.

Як навчитися програмувати в 1С з нуля?

Як працювати програмістом 1С та отримувати до 150 000 рублів на місяць?

ЗАПИШИСЯ НА БЕЗКОШТОВНИЙ

2-ТИЖНЕВИЙ КУРС

"ПРОГРАМУВАННЯ в 1С ДЛЯ НОВИЧКІВ"

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

Для участі потрібен лише комп'ютер та інтернет

Безкоштовний доступ на курс:

Sp-force-hide ( display: none;).sp-form ( display: block; background: #eff2f4; padding: 5px; width: 270px; max-width: 100%; border-radius: 0px; -moz-border -radius: 0px;-webkit-border-radius: 0px; font-family: Arial, "Helvetica Neue", sans-serif; .sp-form input ( display: inline-block; opacity: 1; visibility: visible;).sp-form .sp-form-fields-wrapper ( margin: 0 auto; width: 260px;).sp-form .sp -form-control ( background: #ffffff; border-color: #cccccc; border-style: solid; border-width: 1px; font-size: 15px; padding-left: 8.75px; padding-right: 8.75px; border -radius: 4px;-moz-border-radius: 4px; -webkit-border-radius: 4px; height: 35px; width: 100%;). size: 13px; font-style: normal; font-weight: bold;).sp-form .sp-button ( border-radius: 4px; -moz-border-radius: 4px; background-color: #f4394c; color: #ffffff;width: 100%; font-weight: 700; font-style: normal; font-family: Arial, "Helvetica Neue", sans-serif; box-shadow: none; -moz-box-shadow: none; -webkit-box-shadow: none; background: linear-gradient(to top, #e30d22 , #f77380);).sp-form .sp-button-container (text-align: center;

(Ця стаття відноситься до циклу статей 1С з нуля; програмування 1с з нуля; таблиця значень 1с)

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

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

1. Перебір рядків таблиці значень за допомогою індексів рядків (номерів рядків)

Метод ТаблицяЗначень.Кількість()- Повертає кількість рядків у таблиці значень.

Нагадую, що якщо метод ТаблицяЗначень.Кількість()показав, що у таблиці 5 рядків, то індекси(номери) цих рядків такі: 0, 1, 2, 3, 4.

Припустимо, що ми маємо таблицю значень 1Сз колонкою "Прізвище Клієнта"

Якщо ми бажаємо перебрати всі рядки таблиці значень за допомогою індексу рядків, ми маємо використовувати заголовок циклу, як у прикладі. У ньому ми виводимо на екран вміст колонки "Прізвище Клієнта" для кожного рядка, тобто по суті друкуємо весь стовпець з прізвищами клієнтів.
Отже:

Для НомерРядки = 0 По НашаТаблиця.Кількість() - 1 Цикл // тут перебираються рядки ПоточнеПрізвище = НашаТаблиця[НомерРядки].ПрізвищеКлієнта; // "Прізвище Клієнта" - це ім'я колонки, що містить прізвище клієнта Повідомити (Поточне Прізвище); КінецьЦикл;

Зверніть увагу, що лічильник циклу ми нарощуємо до значення, що дорівнює кількості рядків таблиці мінус один: НашаТаблиця.Кількість() - 1

Давайте з'ясуємо, що означає код: НашаТаблиця[НомерРядки]. Це і є звернення до конкретного рядка таблиці значень щодо її індексу (номеру).

У наступному прикладі я покажу, як НашаТаблиця[НомерРядки]повертає нам об'єкт, який має тип "РядокТаблиціЗначень".
У додаткову змінну я поміщаю результат звернення до рядка за номером: РядокТаблиці = НашаТаблиця[НомерРядки]

Далі, отримавши об'єкт - один рядок таблиці значень у вигляді змінної РядокТаблиці, ми можемо працювати окремо з цим об'єктом-рядком. Приклад нижче робить те саме, що і приклад вище, тільки в нижньому прикладі використана "зайва" змінна РядокТаблиці

Для НомерРядки = 0 За НашаТаблиця.Кількість() - 1 Цикл // тут перебираються рядки РядокТаблиці = НашаТаблиця[НомерРядки].ПрізвищеКлієнта; // отримуємо поточний рядок таблиці значень за її індексом (номером) Поточне Прізвище = Рядок Таблиці. Прізвище Клієнта; // "Прізвище Клієнта" - це ім'я колонки, що містить прізвище клієнта Повідомити (Поточне Прізвище); КінецьЦикл;

Якщо всередині циклу ми напишемо такий код: Повідомити(РядокТаблиці)- цей код НЕ виведе на екран дані з поточного рядка таблиці значень (наприклад, прізвище клієнта та інше).

Все правильно, бо змінна РядокТаблиціявляє собою об'єкт і доступ до даних здійснюється через властивості та методи цього об'єкта – а якщо написати Повідомити(РядокТаблиці), то на екран буде виведена інформація про тип змінної РядокТаблиці: РядокТаблиціЗначень.

Наприклад, код РядокТаблиці.ПрізвищеКлієнтасаме означає доступ до даних, що зберігаються в колонці "Прізвище Клієнта" біля поточного рядка-об'єкта. Чим ми й скористалися у прикладі, щоб вивести прізвища всіх клієнтів, що зберігаються у таблиці значень. Перебираючи всі рядки і виводячи на екран по черзі ці прізвища.

2. Перебір рядків таблиці значень за допомогою циклу перебору колекції "Для кожного..."

Для перебору рядків таблиці значень 1Сми можемо скористатися іншим варіантом циклу. Це спеціальний цикл для вибору елементів об'єктів-колекцій. Таблиця значень 1с є так званою колекцію. В даному випадку – колекцію рядків.

А будь-яку колекцію в 1С можна перебрати за допомогою циклу:

Для кожного з циклів....... дія всередині циклу Кінецьциклу

Виведемо всі прізвища клієнтів зі всіх рядків таблиці за допомогою перебору колекції рядків таблиці значень:

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

При переборі колекції нам не знадобився лічильник номерів рядків (індексів). Спеціальна форма циклу допомогла обійтися без лічильника. У довільну змінну РядокТаблиціпри кожному проході циклу автоматично надається об'єкт-рядок таблиці значень.

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

3. А тепер: повторення матеріалу.

Отже, таблиця значень 1С є колекцією рядків. Хтось колекціонував рядки, складав їх у купу, і вийшла ціла колекція рядків - яку назвали - таблицею значень.

Тільки ця колекція не просто звичайних текстових рядків. Це колекція об'єктів типу РядокТаблиціЗначень. І цей окремий об'єкт-рядок зберігає дані для кожної колонки в поточному рядку. Він зберігає прізвище клієнта, зростання клієнта чи щось там ще, що було потрібне.

Отримати доступ до рядка таблиці значень можна за індексом, що починається з нуля. За допомогою коду МояЧетвертаРядок = МояТаблиця- ми одержуємо четвертий рядок таблиці значень, оскільки нумерація рядків починається з нуля: 0, 1, 2, 3.

Число рядків ми визначаємо методом МояТаблиця.Кількість(). Дужки в кінці не забуваємо, тому що ми викликаємо метод без параметрів.

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

Останнє: Як перебрати колекцію, як отримати номер рядка таблиці значень?
Отримати номер поточного рядка можна викликом методу Індекс() для таблиці значень, до якого ми передаємо об'єкт-рядок.

Приклад нижче виведе на екран номери всіх рядків у таблиці значень 1С:

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

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

Дегтярьов Роман.

Як навчитися програмувати в 1С з нуля?

Як працювати програмістом 1С та отримувати до 150 000 рублів на місяць?

ЗАПИШИСЯ НА БЕЗКОШТОВНИЙ

2-ТИЖНЕВИЙ КУРС

"ПРОГРАМУВАННЯ в 1С ДЛЯ НОВИЧКІВ"

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

Для участі потрібен лише комп'ютер та інтернет

Безкоштовний доступ на курс:

Sp-force-hide ( display: none;).sp-form ( display: block; background: #eff2f4; padding: 5px; width: 270px; max-width: 100%; border-radius: 0px; -moz-border -radius: 0px;-webkit-border-radius: 0px; font-family: Arial, "Helvetica Neue", sans-serif; .sp-form input ( display: inline-block; opacity: 1; visibility: visible;).sp-form .sp-form-fields-wrapper ( margin: 0 auto; width: 260px;).sp-form .sp -form-control ( background: #ffffff; border-color: #cccccc; border-style: solid; border-width: 1px; font-size: 15px; padding-left: 8.75px; padding-right: 8.75px; border -radius: 4px;-moz-border-radius: 4px; -webkit-border-radius: 4px; height: 35px; width: 100%;). size: 13px; font-style: normal; font-weight: bold;).sp-form .sp-button ( border-radius: 4px; -moz-border-radius: 4px; background-color: #f4394c; color: #ffffff;width: 100%; font-weight: 700; font-style: normal; font-family: Arial, "Helvetica Neue", sans-serif; box-shadow: none; -moz-box-shadow: none; -webkit-box-shadow: none; background: linear-gradient(to top, #e30d22 , #f77380);).sp-form .sp-button-container (text-align: center;



Сподобалася стаття? Поділіться їй