#0
by Stan from Piter
Прошу у всех прощения, но может кому и пригодиться - отбор по 4 элементам. 1. Создать общие реквиты справочника (ID01) до 16. 2. Глобальник: Функция глФормированиеСтрокиОтбора(ВидДокумента,СП,А,Б,В,Г) Экспорт ВозвСтрока=""+ВидДокумента; СписокЗн = СоздатьОбъект("СписокЗначений"); Если А=1 Тогда Если ПустоеЗначение(СП.ПолучитьЗначение)=0 Тогда ВозвСтрока=ВозвСтрока+СП.ПолучитьЗначение.Код КонецЕсли; КонецЕсли; Если Б=1 Тогда Если ПустоеЗначение(СП.ПолучитьЗначение)=0 Тогда ВозвСтрока=ВозвСтрока+СП.ПолучитьЗначение.Код КонецЕсли; КонецЕсли; Если В=1 Тогда Если ПустоеЗначение(СП.ПолучитьЗначение)=0 Тогда ВозвСтрока=ВозвСтрока+СП.ПолучитьЗначение.Код КонецЕсли; КонецЕсли; Если Г=1 Тогда Если ПустоеЗначение(СП.ПолучитьЗначение)=0 Тогда ВозвСтрока=ВозвСтрока+СП.ПолучитьЗначение.Код КонецЕсли; КонецЕсли; Возврат ВозвСтрока; КонецФункции // глФормированиеСтрокиОтбора(СП,А,Б,В,Г) 3. Документ (ПриЗаписи) СП=СоздатьОбъект("СписокЗначений"); СП.ДобавитьЗначение(Статус); СП.ДобавитьЗначение(Контрагент); СП.ДобавитьЗначение(Исполнитель); СП.ДобавитьЗначение(""); ТекID=0; Для А=0 По 1 Цикл Для Б=0 По 1 Цикл Для В=0 По 1 Цикл Для Г=0 По 1 Цикл ТекID=ТекID+1; УстановитьАтрибут("ID"+Формат(ТекID,"Ч2"),глФормированиеСтрокиОтбора(ТекущийДокумент.Вид,СП,А,Б,В,Г)); КонецЦикла; КонецЦикла; КонецЦикла; КонецЦикла; 4. В журнале. ВидыОтбора(""); СП=СоздатьОбъект("СписокЗначений"); Если ПустоеЗначение(ВыбСтатус)=1 Тогда СП.ДобавитьЗначение(""); Иначе СП.ДобавитьЗначение(ВыбСтатус); КонецЕсли; Если ПустоеЗначение(ВыбЗаказчик)=1 Тогда СП.ДобавитьЗначение(""); Иначе СП.ДобавитьЗначение(ВыбЗаказчик); КонецЕсли; Если ПустоеЗначение(ВыбИсполнитель)=1 Тогда СП.ДобавитьЗначение(""); Иначе СП.ДобавитьЗначение(ВыбИсполнитель); КонецЕсли; СП.ДобавитьЗначение(""); ТекID=0; А=0; Б=0; В=0; Г=0; Если ПустоеЗначение(СП.ПолучитьЗначение)=0 Тогда А=1; ТекID=ТекID+8; КонецЕсли; Если ПустоеЗначение(СП.ПолучитьЗначение)=0 Тогда Б=1; ТекID=ТекID+4; КонецЕсли; Если ПустоеЗначение(СП.ПолучитьЗначение)=0 Тогда В=1; ТекID=ТекID+2; КонецЕсли; Если ПустоеЗначение(СП.ПолучитьЗначение)=0 Тогда Г=1; ТекID=ТекID+1; КонецЕсли; Если ТекID=0 Тогда УстановитьОтбор("Запрос",""); Иначе УстановитьОтбор("ID_"+Формат(ТекID+1,"Ч2"),глФормированиеСтрокиОтбора("Запрос",СП,А,Б,В,Г)); КонецЕсли; Ну, в общем и все. Кому интересно - пользуемся на здоровье.
#1
by Ёпрст2
"общие реквиты справочника " :)) Пятнично ... ЗЫ: Формировать строку из кодов элементов справочника - моветон ... Да и нафига изобретать лисапед? ...
#2
by Ёпрст2
Для А=0 По 1 Цикл Для Б=0 По 1 Цикл Для В=0 По 1 Цикл Для Г=0 По 1 Цикл ТекID=ТекID+1; УстановитьАтрибут("ID"+Формат(ТекID,"Ч2"),глФормированиеСтрокиОтбора(ТекущийДокумент.Вид,СП,А,Б,В,Г)); КонецЦикла; КонецЦикла; КонецЦикла; КонецЦикла; Это вообще шедевр ..надо запомнить ....:)
#3
by Stan from Piter
Булеву алгебру не вспомнить? Может подскажет уважаемый Ёпрст, функцию перебора элементов от 0000 до 1111??? Тогда пойду и напьюсь с горя, каким я стал тупым .... :-) Без наезда .... То-же самое, но вид с боку и только для 2 элементов ...
#4
by Chieftain
Чем тебе это не нравится? Для ном=0 по 1111 Цикл ИмяАтрибута=Формат(ном,"Ч4") КонецЦикла;
#5
by Ёпрст2
Я б понял, если это писал начинающий кодер, но 3 года ..ппц... А за привязку к кодам справочника ...поубивал бы ...
#7
by Stan from Piter
,, .... Вот именно .... 4 года.... А вот ВЫ та и не научились считать элементы ..... 0000 - 0, 0001 - 1, 1111 - 15. Это БУЛЕВА алгебра .... прошу не путать с простой. А цикл по 1111 элементам мне не нужен .... Читай внимательно ...
#8
by Stan from Piter
,, И нужно это для создания условия отбора по ЛЮБОМУ варианту отбора из 4 элементов ...
#10
by Ёпрст2
А лепить 16 общих реквизитов ...это батенька п... Если уж так озаботился, то лучше уж своя форма журнала + ВК использовать ..
Тэги: Математика и алгоритмы
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- v7: Множественный отбор в журналах и справочниках 7.7 заменой запросов SQL
- Множественный выбор из журнала документов
- v7: Множественный отбор в журналах
- romix: Множественный отбор в журналах и справочниках 7.7 заменой запросов SQL
- 8.2 Множественный выбор
- "Отключить отбор " и "Отбор по значению в текущей колонке"
- Множественный отбор в табличной части на форме
- v7: Индексированная таблица. Множественный отбор
В этой группе 1С
- ЗУП 2.5 Расчетная ведомость не формируется
- Дробное число прописью
- Запрет на интерактивный отбор
- v7: конвертация базы из паруса в 1С
- Пропадает выделение поля ввода
- Удаление базы с сервера 1С
- При открытии формы платежного поручения изменяется КПП
- Как программно установить размер табличного поля?
- 1С:ЗУП 8.1 Внутреннее совместительство
- Упаковка таблиц информационной базы
- Коприрование элемента справочника
- Проведение по партиям в УПП
- Пропали субконто в проводках документов
- Расходный кассовый ордер
- Нечеткое сравнение строк
- проблема с пакетным запуском.
- как переименовать колонку в твблице значений
- Перенос данных из одной формы в другую
- разрешить редактирование КИ в списке
- Конвертация данных 2.0 Перегрузка элементов в определенную папку