Как постранично (порционно) листать результат запроса в 1С (ака LIMIT x,y в MySQL)

Большая беда MSSQL и как следствие 1С — отсутствие возможности порционно листать записи результата запроса как в MySQL. В результате рождаются такие монстроузные алгоритмы как ниже (код не мой):

Если вкратце, то алгоритм следующий:

  1.  Делаем выборку ВСЕХ записей, определяя, с какой записи было начало предыдущей страницы
  2. Начиная с этой записи, делаем выборку N записей
  3. Передаем результат

Интересно будет посмотреть как этот алгоритм будет вести себя при миллионах записей..

 

1C: пауза при исполнении кода

Есть мнение, что необходимость паузы в коде, это признак плохой архитектуры кода. Категорически не согласен. Да любой код можно усложнить так,  чтобы избежать необходимости паузы. Но стоит ли усложнять код ради этого? Нужно искать компромисс. В моем случае, пауза понадобилась из-за того что есть ограничение по количеству отправляемых СМС в секунду со стороны провайдера. Простой способ: отправлять СМС с паузой. Сложный способ — организовать очередь отправки через..ну например регламентные задания.  Зачем сложный способ для редкой отправки  20 СМС? Вот, держите один из реализаций «Паузы»:

1С:Добавление своего представления в поле выбора

Задача:  в отображении контрагента в поле выбора добавить помимо наименования, еще и его ИНН

Решение: переопределим процедуру ОбработкаПолученияПредставления в модуле менеджера справочника контрагента:

Получится:

 

Как много нам открытий чудных (с)

А вы знали, что ячейку в Excel можно разделить диагональной линией? Вот так:

Для этого достаточно в свойствах ячейки в «границах» щелкнуть по середине окна (там где точка оранжевая). Ну соответственно в связи с этим открываются возможности для всяких извращений типа с заголовками типа:

Линию подчеркивания закрасить белым цветом

1С: просмотр содержимого временных таблиц в отладчике

Часто при отладке хитромудрых конфигураций необходимо подсмотреть содержимое временных таблиц. Начиная с платформы 8.13 это можно посмотреть прямо в отладчике. Пусть например временные тблицы у нас находятся в переменной МенеджерВТ. Нажимаем Shift-F9,  вводим МенеджерВТ, нажимаем расчитать, проваливаемся в значение «Временные таблицы запроса» и видим названия временных таблиц:

Далее зная имена таблиц, можно получить содержимое каждой из них или по индексу или по имени:

МенеджерВТ.Таблицы[0].ПолучитьДанные().Выгрузить()

1 13 14 15 16 17 38