Глава 2
Для работы с документами программа 1С имеет свои функции. Отчасти они похожи
-----------------------------------
на функции для работы со справочниками. Протестируем несколько функций.
Процедура Сформировать()
Док.ВыбратьДокументы(,);
Пока (Док.ПолучитьДокумент() = 1) Цикл
Сообщить(Док.НомерДок + " "+ Док.ДатаДок + " " + Док.склад);
--------------------------------
Результат
Программа вывела:
1 22.01.09 Главный
2 01.09.09 Главный
3 01.09.09 Главный
Программа вывела Номер, Дату и Склад для документа ПН. Но не вывела Товар. Потому,
//*******************************************
что товар был выбран из списка? Нет! Не поэтому, а потому, что для вывода строк
есть отдельные функции. Поэтому нам надо будет организовать Цикл в Цикле.
Процедура Сформировать()
Док.ВыбратьДокументы(,);
Пока (Док.ПолучитьДокумент() = 1) Цикл
Сообщить(Док.НомерДок + " "+ Док.ДатаДок + " " + Док.склад);
Док.ВыбратьСтроки();
Пока (Док.ПолучитьСтроку() = 1) Цикл
Сообщить(Док.Товар);
Результат
Результат работы процедуры:
1 22.01.09 Главный
Ботинки
Кросовки
Валенки
2 01.09.09 Главный
Квас
Ботинки
Валенки
Кросовки
3 01.09.09 Главный
Пепси Кола
Туфли
Босоножки
------------
Как мы и заказывали программа вывела реквизиты шапки - дату документа, номер документа
и наименование склада. Так же программа в Цикле перебрала все строки в табличной
части документа и вывела наименование товара.
Теперь дополним программу, чтобы она вывела и остальные реквизиты шапки - кто и всего,
а так же остальные элементы строк - цена, количество, ед.измерения сумма.
--------------------------
Процедура Прим01()
Док.ВыбратьДокументы(,);
Пока (Док.ПолучитьДокумент() = 1) Цикл
Сообщить(" " + Док.НомерДок + " "+ Док.ДатаДок + " " + Док.склад
Док.ВыбратьСтроки();
Пока (Док.ПолучитьСтроку() = 1) Цикл
Сообщить(" " + Док.Товар+" " + Док.Цена+" "+ Док.Количество
-----------------------------
Результат
1 22.01.09 Главный ЗАО "Кристалл" 40000
Ботинки 300 82 шт 24600
Кросовки 250 50 шт 12500
Валенки 100 29 шт 2900
2 01.09.09 Главный ЗАО "Кристалл" 0
Квас 30 45 бут 0,5 1350
Ботинки 1200 50 шт 60000
Валенки 800 90 шт 72000
Кросовки 600 60 шт 36000
3 01.09.09 Главный ЗАО "Кристалл" 0
Пепси Кола 35 120 бут 0,5 4200
Туфли 2000 35 шт 70000
Босоножки 500 70 шт 35000
4 01.09.09 0
5 01.09.09 Склад № 2 0
Макароны 32 100 пачки 3200
Лимонад "Тархун" 25 50 бут 1,5 1250
Пиво "Бочковое" 54 120 бут 1,5 6480
Как видим программа вывела все что мы требовали.
Программа вывела все имеющиеся на сегодня пять документов - приходные накладные,
и вывела все поля шапки и все строки табличной части каждого документа.
Резюме
Мы научились получать доступ и выводить реквизиты шапки документа и реквизиты его
табличной части. При этом в программе мы применили двойной цикл. Внешний цикл -
для нахождения каждого документа, внутренний цикл - для перебора строк табличной
части документа.
Какие функции нами были использованы:
Док = СоздатьОбъект("Документ.ПН")
Док.ВыбратьДокументы(,)
Док.ПолучитьДокумент()
Док.ВыбратьСтроки()
Док.ПолучитьСтроку()
Вопросы
Вопрос: Как выбирать документ по его дате и наименованию
и программно заносить в него данные?.
Мы так делали для справочника. Здесь разница в том, что модкль справочника -
один для справочника, а модуль документа - один для всех документов. Например
модуль для документа ПН один для всех созданных пользователем документов ПН.
Назад |
Начало урока |
Вверх |
Вперед
Содержание