Клементьев Николай

45
Рейтинг

Rusmus
Николай Клементьев



  •   Регистрация: 01.07.2009 (14 лет назад)

  •   Был(а) на сайте: вчера в 10:06

Подписчики 1

Рейтинг 45

Открытие управляемой формы списка (выбора) с произвольными отборами

Статья Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free) Нет файла Работа с интерфейсом

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

16.04.2010    53569    Rusmus    22       

31

Комментарии

DevМетодика применения однострочного кода#55 27.09.22 16:55
(40) Значит ли это, что код из статьи, преобразованный в такой:

Код
   КоличествоСтрок = 100000
   ; СтрокаДанных = "pyterochka;75779.04;46907.27;21/1/2012"
   ; ВремяНачала=ТекущаяУниверсальнаяДатаВМиллисекундах()
   ; ТаблицаДанных=Новый ТаблицаЗначений
   ; ТаблицаДанных.Колонки.Добавить("ИмяМагазина")
   ; ТаблицаДанных.Колонки.Добавить("Дебит")
   ; ТаблицаДанных.Колонки.Добавить("Кредит")
   ; ТаблицаДанных.Колонки.Добавить("ДатаОперации")
   ; ТаблицаДанных.Колонки.Добавить("МесяцОперации")
   ; Для Счетчик = 1 по КоличествоСтрок
      Цикл ТекущиеДанныеМассивом=СтрРазделить(СтрокаДанных,";")
      ; НоваяСтрока=ТаблицаДанных.Добавить()
      ; НоваяСтрока.ИмяМагазина=ТекущиеДанныеМассивом[0]
      ; НоваяСтрока.Дебит=Число(ТекущиеДанныеМассивом[1])
      ; НоваяСтрока.Кредит=Число(ТекущиеДанныеМассивом[2])
      ; КускиДаты=СтрРазделить(ТекущиеДанныеМассивом[3], "/")
      ; НоваяСтрока.ДатаОперации=Дата(КускиДаты[2], КускиДаты[1], КускиДаты[0])
      ; НоваяСтрока.МесяцОперации=НачалоМесяца(НоваяСтрока.ДатаОперации)
   ; КонецЦикла
   ; ВремяОкончания=ТекущаяУниверсальнаяДатаВМиллисекундах()
   ; Сообщить(СтрШаблон("Время чтения данных %1 мсек.",Строка(ВремяОкончания-ВремяНачала)))


будет выполняться за то же время, что и однострочный (при включенном разрешении отладки)
DevМинимализмы#63 05.06.15 15:19
(62) спасибо за дополнение.
DevМинимализмы#61 05.06.15 10:43
задачу 21 (Определение длины строки в запросе) у себя делаю по такому принципу:

ВЫБРАТЬ
Дано.*,
ЕСТЬNULL(ё, "256+") КАК Длина
ИЗ
Дано
ЛЕВОЕ СОЕДИНЕНИЕ Р543210
ПО ПОДСТРОКА(Дано.Строка,ё,1) <> "" И ПОДСТРОКА(Дано.Строка,ё+1,1) = ""

Преимущества:
не портится таблица Дано - записи с длинными строками не пропадут, одинаковые записи не сгруппируются
полей в Дано может быть сколько угодно; не надо писать список в разделе "сгруппировать по"

Как думаете, какая будет разница по скорости?
DevГрупповая обработка справочников и документов + планов видов расчета и планов видов характеристик#0 27.10.11 15:06
Небольшое дополнение типовой обработки для работы с планами видов характеристик и расчета.
DevТестирование – размышление о стереотипах.#6 22.03.11 11:19
(0) Меня тоже возмутил комментарий ко второму стереотипу.
Стереотип спорен, согласен. Но ненайденная ошибка - еще не значит отсутствующая. Будет хуже, если на ошибку потом наткнется пользователь. Здравый вариант - в посте (1).
А ошибки, кроме того, что они просто есть, еще можно упорядочить по критичности, важности и вероятности проявления. Абсолютно все найденные ошибки нет смысла исправлять - по крайней мере немедленно.
(2) Для черного ящика приходится перебирать всевозможные состояния программы. А это - см. стереотип 3. Фактически, имея исходные код, можно найти узкие места "на глазок", без утомительного воссоздания ситуаций.
ТорговляКонвертация данных 2. Выгрузка виртуальных объектов (документ Установка цен номенклатуры)#5 03.02.11 15:37
(2)
и в ПослеЗагрузки можно создать нужный элемент валюты, заодно прописав ему наименование, параметры прописи и т.д. Только это не нужно, ведь даже в новой базе при первом запуске записываются основные валюты, ведь так?
предложение по отбору - вообще не критично. это для удобства отладки, чтобы была возможность уменьшить число выгружаемых объектов. По хорошему, думаю, лучше, чтобы был отбор по номенклатуре.
ТорговляКонвертация данных 2. Выгрузка виртуальных объектов (документ Установка цен номенклатуры)#1 03.02.11 10:17
Полезно для начинающих.

Могу предложить дополнения:
1. Раз в ТЧ документа гарантировано нужно указывать известную заранее валюту, можно в обработчике ПослеЗагрузки правила конвертации документа находить её и подставлять в ТЧ. Тогда не понадобится правило конвертации валюты, свойство конвертации и строка 'КоллекцияОбъектов.Валюта = "643";'

2. В правиле выгрузки данных можно указать стандартную выгрузку из источника Справочник.ТипЦен и попавшие в выборку элементы сохранять в параметре (в обработчике ПриВыгрузки, дописав еще "Отказ=1;"). А в обработчике ПослеВыгрузки собирать данные и вызывать метод ВыгрузитьПоПравилу(..). Это даст пользоваться выгодами отбора по типу цен и соберет весь код в обработчиках одного объекта (правила выгрузки).


DevЗапись текста модуля ert-файла из текстового файла#3 02.12.10 14:31
(2) Я правильно понимаю, что такая конструкция есть только в 7.7. В этом случае не комильфо: замена модуля обработки происходит из базы Конвертация данных на 8ке.
О жизниИнфостарт. Восьмерка. Лучшее#49 12.11.10 12:45
(46) хоть и тусовочный, а влияет на лимит скачивания (
вот сейчас не могу скачать представленный файл. а завтра не смогу скачать перечисленные в нем разработки ((