Не работает отбор документов в программном коде. Бюджет Бух7.7. релиз 633-634
30.11.2009
17:52
#1
"НЕ работает очень простая конструкция:
....
Док = СоздатьОбъект("Документ");
Док.ВидыДляВыбора ("РегистрацияБюджетногоОбязательства,Кассовоевыбытие,ЗаявкаНаНаличные");
Если Док.ВыбратьДокументы()<> 0 Тогда
Пока Док.ПолучитьДокумент()= 1 Цикл
Предупреждение(Док);
КонецЦикла;
КонецЕсли;
.....
смотрим Предупреждение - Внутрь цикла попадают ВСЕ!! виды документов
Что я делаю не так?"
....
Док = СоздатьОбъект("Документ");
Док.ВидыДляВыбора ("РегистрацияБюджетногоОбязательства,Кассовоевыбытие,ЗаявкаНаНаличные");
Если Док.ВыбратьДокументы()<> 0 Тогда
Пока Док.ПолучитьДокумент()= 1 Цикл
Предупреждение(Док);
КонецЦикла;
КонецЕсли;
.....
смотрим Предупреждение - Внутрь цикла попадают ВСЕ!! виды документов
Что я делаю не так?"
30.11.2009
18:10
#2
"В справке упор делают на Интерактивный выбор, а у вас программный, может в этом все дело. Можно так попробовать (я правда не тестировал и немного сомневаюсь в ИзСтрокиСРазделителями):
...
Док = СоздатьОбъект("Документ");
СписВидов = СоздатьОбъект ("СписокЗначений");
СписВидов.ИзСтрокиСРазделителями ("РегистрацияБюджетногоОбязательства,Кассовоевыбытие,ЗаявкаНаНаличные");
Если Док.ВыбратьДокументы()<> 0 Тогда
Пока Док.ПолучитьДокумент()= 1 Цикл
Если СписВидов.Принадлежит (Док.Вид()) = 0 Тогда Продолжить;
Иначе
Предупреждение(Док);
КонецЕсли;
КонецЦикла;
КонецЕсли; "
...
Док = СоздатьОбъект("Документ");
СписВидов = СоздатьОбъект ("СписокЗначений");
СписВидов.ИзСтрокиСРазделителями ("РегистрацияБюджетногоОбязательства,Кассовоевыбытие,ЗаявкаНаНаличные");
Если Док.ВыбратьДокументы()<> 0 Тогда
Пока Док.ПолучитьДокумент()= 1 Цикл
Если СписВидов.Принадлежит (Док.Вид()) = 0 Тогда Продолжить;
Иначе
Предупреждение(Док);
КонецЕсли;
КонецЦикла;
КонецЕсли; "
30.11.2009
18:27
#3
> В справке упор делают на Интерактивный выбор..
Я этого не вижу:
ВидыДляВыбора()
Синтаксис:
ВидыДляВыбора()
Назначение:
Установка выбираемых видов для объекта типа документ неопределенного вида.
Возвращает:
Строковое значение, содержащее текущий список видов выбираемых документов, разделенных запятыми (на момент до исполнения метода).
Параметры:
- строка, содержащая список видов выбираемых документов, разделенных запятыми.
Замечание:
Метод можно использовать только для объектов типа документ неопределенного вида либо созданных функцией СоздатьОбъект, либо определенных в конфигураторе как реквизиты диалога или другого объекта.
И получается, что все равно перебираешь все документы... хоть вашим способом, хоть делая "СписВидов" Списком, хоть через конструкцию
Если док.вид() = вид1 Тогда
ИначеЕсли док.вид()=вид2 Тогда
хоть как.. скорость одна и та же
Обидно.. Ведь в самой типовой "ВидыДляВыбора" используют в отчетах, правда потом все равно проверяют.. не понятно зачем.
Я этого не вижу:
ВидыДляВыбора()
Синтаксис:
ВидыДляВыбора()
Назначение:
Установка выбираемых видов для объекта типа документ неопределенного вида.
Возвращает:
Строковое значение, содержащее текущий список видов выбираемых документов, разделенных запятыми (на момент до исполнения метода).
Параметры:
- строка, содержащая список видов выбираемых документов, разделенных запятыми.
Замечание:
Метод можно использовать только для объектов типа документ неопределенного вида либо созданных функцией СоздатьОбъект, либо определенных в конфигураторе как реквизиты диалога или другого объекта.
И получается, что все равно перебираешь все документы... хоть вашим способом, хоть делая "СписВидов" Списком, хоть через конструкцию
Если док.вид() = вид1 Тогда
ИначеЕсли док.вид()=вид2 Тогда
хоть как.. скорость одна и та же
Обидно.. Ведь в самой типовой "ВидыДляВыбора" используют в отчетах, правда потом все равно проверяют.. не понятно зачем.
30.11.2009
18:30
#4
У меня html-ное описание, там написано:
Метод ВидыДляВыбора устанавливает выбираемые виды для объекта-документ неопределенного вида. Данный метод обычно используется до начала интерактивного позиционирования документа, например, при помощи метода Выбрать.
Данный метод может использоваться только для объектов типа «документ» неопределенного вида — либо созданных функцией СоздатьОбъект, либо определенных в конфигураторе как реквизиты диалога или другого объекта. Если метод ВидыДляВыбора применен к реквизиту диалога типа «документ» неопределенного вида, то интерактивный выбор будет производиться только среди установленных видов документов.
Метод ВидыДляВыбора устанавливает выбираемые виды для объекта-документ неопределенного вида. Данный метод обычно используется до начала интерактивного позиционирования документа, например, при помощи метода Выбрать.
Данный метод может использоваться только для объектов типа «документ» неопределенного вида — либо созданных функцией СоздатьОбъект, либо определенных в конфигураторе как реквизиты диалога или другого объекта. Если метод ВидыДляВыбора применен к реквизиту диалога типа «документ» неопределенного вида, то интерактивный выбор будет производиться только среди установленных видов документов.
Читают тему
(гостей: 1)