![]() |
|
v7: Как перебрать справочник иерархически в 7.7 и документы? | ☑ | ||
---|---|---|---|---|
0
yavasya
28.10.14
✎
06:03
|
//*******************************************
Функция СобратьПереоценки() ТЗ = СоздатьОбъект("ТаблицаЗначений"); ТЗ.НоваяКолонка("Номер"); ТЗ.НоваяКолонка("Дата"); ТЗ.НоваяКолонка("УИНДок"); ТЗ.НоваяКолонка("Организация"); ТЗ.НоваяКолонка("Склад"); ТЗ.НоваяКолонка("СуммаРозница"); ТЗ.НоваяКолонка("Время"); _Док = СоздатьОбъект("Документ.АктОПереоценке"); _Док.УстановитьФильтр(1,0); _Док.ВыбратьДокументы(НачДата,КонДата); Пока _Док.ПолучитьДокумент() = 1 Цикл Если _Док.ПометкаУдаления() = 1 Тогда Продолжить; КонецЕсли; ТЗ.НоваяСтрока(); ТЗ.Номер = СокрЛП(_Док.НомерДок); ТЗ.Дата = Формат(_Док.ДатаДок, "d YYYYMMDD"); ТЗ.УИНДок = ПолучитьУИН(_Док.ТекущийДокумент()); ТЗ.Организация = СокрЛП(ВыбФирмы.ИНН); ТЗ.Склад = ПолучитьУИН(_Док.Склад); ТЗ.СуммаРозница= _Док.Итог("Сумма_Разницы"); ч = 0; м = 0; с = 0; _Док.ПолучитьВремя (ч, м, с); ТЗ.Время = Прав("0" + ч,2) + Прав("0"+м,2) + Прав("0"+с,2); КонецЦикла; Возврат ТЗ; КонецФункции //СобратьПереоценки непонятно конструкция, но она работает. почему создать документ? а не выбрать документы? остальное всё понятно. следующее //******************************************* Функция СобратьКлиентовДоговоры() ТЗКонтрагенты = СоздатьОбъект("ТаблицаЗначений"); ТЗКонтрагенты.НоваяКолонка("УИНКлиента"); ТЗКонтрагенты.НоваяКолонка("ВидКлиента"); ТЗКонтрагенты.НоваяКолонка("ЭтоГруппа"); ТЗКонтрагенты.НоваяКолонка("Наименование"); ТЗКонтрагенты.НоваяКолонка("ПолнНаименование"); ТЗКонтрагенты.НоваяКолонка("ИНН"); ТЗКонтрагенты.НоваяКолонка("КПП"); ТЗКонтрагенты.НоваяКолонка("ОКПО"); ТЗКонтрагенты.НоваяКолонка("Телефон"); ТЗКонтрагенты.НоваяКолонка("Адрес"); ТЗКонтрагенты.НоваяКолонка("УИНДоговор"); ТЗКонтрагенты.НоваяКолонка("Договор"); ТЗКонтрагенты.НоваяКолонка("Организация"); СпрКлиенты = СоздатьОбъект("Справочник.Клиенты"); СпрКлиенты.ВыбратьЭлементы(); Пока СпрКлиенты.ПолучитьЭлемент() = 1 Цикл _Стр = 0; Если мПоставщики.НайтиЗначение(СпрКлиенты.ТекущийЭлемент(), _Стр, "Клиент") = 0 Тогда Продолжить; КонецЕсли; ТЗКонтрагенты.НоваяСтрока(); ТЗКонтрагенты.УИНКлиента = ПолучитьУИН(СпрКлиенты.ТекущийЭлемент()); ТЗКонтрагенты.ВидКлиента = "Поставщик"; ТЗКонтрагенты.ЭтоГруппа = ?(СпрКлиенты.ЭтоГруппа() = 1, "Истина", "Ложь"); ТЗКонтрагенты.Наименование = СокрЛП(СпрКлиенты.Наименование); ТЗКонтрагенты.ПолнНаименование = СокрЛП(СпрКлиенты.ФИО); ТЗКонтрагенты.ИНН = СокрЛП(СпрКлиенты.ИНН); ТЗКонтрагенты.КПП = СокрЛП(СпрКлиенты.КПП); ТЗКонтрагенты.ОКПО = СокрЛП(СпрКлиенты.КодОКПО); ТЗКонтрагенты.Телефон = СокрЛП(СпрКлиенты.Телефон); ТЗКонтрагенты.Адрес = СокрЛП(СпрКлиенты.Адрес); ТЗКонтрагенты.УИНДоговор = ПолучитьУИН(СпрКлиенты.ОсновнойДоговор); ТЗКонтрагенты.Договор = СокрЛП(СпрКлиенты.ОсновнойДоговор); ТЗКонтрагенты.Организация = СокрЛП(ВыбФирмы.ИНН); КонецЦикла; Возврат ТЗКонтрагенты; снова эта строчка !! почему создать элемент? СпрКлиенты = СоздатьОбъект("Справочник.Клиенты"); СпрКлиенты.ВыбратьЭлементы(); |
|||
1
VladZ
28.10.14
✎
06:13
|
_ИмяПеременной = СоздатьОбъект(ИмяОБъекта) - создает переменную с типом нужного объекта. Семерка - это не восьмерка, где можно ваять конструкции вида документы.АвансовыйОтчет.Выбрать().
Сначала инициализируем переменную с нужным типом объекта. Потом с ним работаем. |
|||
2
VladZ
28.10.14
✎
06:16
|
По аналогии с VB:
Set AppWord - CreateObject ("Word.Application") |
|||
3
VladZ
28.10.14
✎
06:17
|
упс. Опечатка...
Set AppWord = CreateObject ("Word.Application") |
|||
4
yavasya
28.10.14
✎
11:45
|
спасибо!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |