Створення обробки заповнення табличній частини 1с 8

1. Постановка завдання

У цій статті розглянемо процес написання найпростішої зовнішньої обробки заповнення табличній частини в 1С 8 для конфігурацій, що використовують звичайна програма. Для прикладу візьмемо таку задачу: "У конфігурації 1С: Бухгалтерія 2.0 створити зовнішню обробку заповнення табличній частини Товари документа Реалізація товарів і послуг. дані для заповнення взяти з табличній частині Товари документа Надходження товарів і послуг ". Таким чином нам необхідно заповнити товари реалізації на підставі товарів надходження, таке завдання досить часто зустрічається в реальній практиці програміста 1С.







2. Створення зовнішньої обробки

Зайдемо в 1С 8 в режимі Конфігуратор. За допомогою меню Файл -> Новий або піктограми Новий документ створимо нову зовнішню обробку.

В поле Ім'я вкажемо: "ПростейшееЗаполненіеТаблічнойЧасті" і збережемо зовнішню обробку на жорсткий диск використовуючи меню Файл -> Зберегти або піктограму Зберегти або поєднання клавіш Ctrl + S.

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

Створення обробки заповнення табличній частини 1с 8

На другій сторінці конструктора нам необхідно вибрати реквізит ДокументПоступленія (для того що б він з'явився на створюваній формі) і натиснути кнопку Готово.

Створення обробки заповнення табличній частини 1с 8

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

Приступимо до програмування обробки заповнення табличній частини. Перейдемо в Модуль об'єкта зовнішньої обробки (на нижній панелі обробки кнопка Дії -> Відкрити модуль об'єкта).

У ньому нам необхідно створити експортну процедуру Ініціалізувати.

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

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

При виконанні процедури в параметрі Об'єкт буде міститися об'єкт документа, який ми заповнюємо, а в параметрі ІмяТаблічнойЧасті рядок з ім'ям табличній частині, яку ми заповнюємо. Таким чином ця строчка коду отримує табличну частину заповнюється документа по її імені.

Нам необхідно щоб споживач вибрав документ Надходження товарів і послуг. тому напишемо код відкриття форми вибору документа. Для початку отримаємо цю форму в змінну, використовуючи метод зовнішньої обробки ПолучітьФорму (<Форма>, <Владелец>, <КлючУникальности>). Нам достатньо заповнити тільки перший параметр цього методу, передавши туди рядок з ім'ям нашої форми.

Тепер відкриємо отриману форму, використовуючи модальне відкриття (поки форма відкрита всі інші вікна 1С недоступні), тому що при такому способі відкриття подальший наш код в процедурі Ініціалізувати виконуватися не буде, поки користувач не закриє форму.

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

Для перевірки заповнювання реквізиту тут використовується функція глобального контексту ЗначеніеЗаполнено (<Значение>). вона перевіряє відрізняться Чи має значення передане в параметрі від значення за замовчуванням того ж типу. Процедура Повідомити виводить вказаний текст у вікно повідомлень 1С 8. Ключове слово Повернення перериває виконання процедури.







Приступимо до написання запиту, який буде вибирати дані табличній частині Товари документа Надходження товарів і послуг. Створимо новий запит:

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

Напишемо текст запиту, будемо робити це за допомогою Конструктора запиту. Писати текст запиту вручну не рекомендується, це не ефективно і забирає купу часу. Для початку напишемо рядок:

Поставимо курсор між символами лапок, натиснемо праву кнопку миші і виберемо пунк Конструктор запиту .... Після цього відобразиться запит на створення новий запит, натиснемо кнопку "ОК". Відкриється вікно конструктора, в лівій його частині розташовані всі доступні таблиці бази даних, нам необхідний документ ПоступленіеТоваровУслуг. Знайдемо його і розкриємо за допомогою символу "+", виберемо табличну частину Товари і перетягнемо її до другої частини екрану конструктора, яка називається Таблиці (Також перемістити потрібну таблицю можна за допомогою кнопки ">").

Створення обробки заповнення табличній частини 1с 8

Тепер розкриємо по "+" обрану нами таблицю (ПоступленіеТоваровУслугТовари) і перетягнемо необхідні для нашого заповнення табчасті поля в третю частину екрану конструктора, яка так і називається - Поля. Всі доступні поля вибирати не будемо, обмежимося таким набором: Номенклатура, Кількість, Ціна, Сума, СтавкаНДС, СуммаНДС.

Створення обробки заповнення табличній частини 1с 8

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

Створення обробки заповнення табличній частини 1с 8

Створення тексту запиту в конструкторі на цьому завершено, натиснемо кнопку "ОК". В результаті у нас вийшов наступний текст запиту:

Створений запит залишилося тільки виконати і вивантажити в змінну:

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

За допомогою циклу Для кожного обійдемо таблицю значень з результатами запиту.

У цьому циклі створимо і заповнимо рядки табличній частини документа Реалізація товарів і послуг. Створити новий рядок ми можемо за допомогою змінної ТаблічнаяЧасть. через яку можна здійснювати з нею будь-які дії.

Заповнимо створену рядок таб. частини даними з рядка результату запиту використовуючи процедуру Глобального контексту - ЗаполнітьЗначеніяСвойств (<Приемник>, <Источник>).

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

процедурою ЗаполнітьСчетаУчетаВСтрокеТабЧасті з модуля об'єкта документа Реалізація товарів і послуг. Викличемо її за допомогою параметра Об'єкт (слід зауважити,

що ми можемо викликати тільки експортні процедури з модуля об'єкта документа).

На цьому програмування заповнення табличній частини для 1С 8 завершено. Обробку можна використовувати. Повний текст процедури Ініціалізувати. виглядає так:

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

Створення обробки заповнення табличній частини 1с 8

Створення обробки заповнення табличній частини 1с 8

Тепер необхідно зробити створену форму основною формою обробки. Для цього виберемо її в поле "Форма обробки".

Створення обробки заповнення табличній частини 1с 8

Тепер ви можете ставити крапку зупинки в потрібному місці процедури Ініціалізувати або процедури КнопкаВиполнітьНажатіе форми налагодження, і запускати обробку заповнення табличній частини в режимі налагодження 1С: Підприємства.

5. Підключення до документа

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

Створення обробки заповнення табличній частини 1с 8

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

Створення обробки заповнення табличній частини 1с 8

І зазначимо, що заповнення призначене для табличній частині Товари.

Створення обробки заповнення табличній частини 1с 8

Натискаємо кнопку ОК і на цьому все, обробка заповнення буде доступна в меню Заповнити табличній частині Товари документа Реалізація товарів і послуг. Завантажити обробку використану для цього прикладу ви можете за посиланням.







Схожі статті