IT решения для Вашего бизнеса

 
Главная  |  Продукты  |  Услуги и цены  |  Клиенты  |  Контакты
 
1C Предприятие 7.7
Наши решения
Программирование
1С Предприятие 8.*
Наши решения
Партнерские разработки
Типовые решения
Программирование
Администрирование
Web проекты
Интернет-магазины
Поиск по сайту

 

Модуль предназначен для формирования прайсов различной структуры, с выводом на печать и в Эксель. Сформированный прайс может быть заархивирован и отправлен через ФТП на Ваш сайт, и все это, нажатием одной кнопки. Модуль  работает с любой конфигурацией 1С 8.1, 1С 8.2 и 1С 8.3.

1. Хранение неограниченного количества вариантов формирования и оформления прайсов.

2. Формирование прайса в виде дерева с любыми полями товара и с изображениями

3. Вставка гиперссылок на страницы товара на Вашем сайте.

4.
Вывод прайса на печать, в Эксель, архивирование и выгрузка по ФТП.

5.
Уменьшение изображений до указанных размеров

Цена: 100$ Подробная информация о модуле

 

Главная arrow Программирование arrow Использование временных таблиц в запросах
Использование временных таблиц в запросах Версия в формате PDF Версия для печати Отправить на e-mail
Рейтинг: / 38
ХудшаяЛучшая 
Написал Валецкий Станислав   
В одном из последних релизов платформы 8.1 появилась возможность использовать в запросах временные таблицы. Что это такое и как их можно использовать? Рассмотрим пример, с которым наверное многие из Вас сталкивались - а именно с необходимостью расчета цен по таблице товаров. Раньше эту задачу можно было решить разными способами, но ни один не обеспечивал быстрое и удобное получение результата. Эту проблему и решили временные таблицы.
Итак, допустим у нас есть таблица товаров - "ТабТоваров" с колонками - "Номенклатура", "Количество", "Цена", "Сумма", и нам необходимо быстро рассчитать цену и сумму по всем товарам. Первым шагом мы создаем менеджер временных таблиц и помещаем туда нашу таблицу значений:

 
        МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; 
  Запрос = Новый Запрос;
  Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
  Запрос.Текст = 
  "ВЫБРАТЬ 
  |  ТабТоваров.Номенклатура,
  |  ТабТоваров.Количество
  |  ПОМЕСТИТЬ ВыбрНоменклатура   
  |  ИЗ &ТабТоваровКАК ТабТоваров";
  
  Запрос.УстановитьПараметр("ТабТоваров", ТабТоваров);
  Запрос.Выполнить();
Следующим шагом мы к временной таблице левым соединением прицепим цены из регистра сведений "ЦеныНоменклатуры"

 
        Запрос.Текст =   "ВЫБРАТЬ 
  |  ВыбрНоменклатура.Номенклатура,
  |  ВыбрНоменклатура.Количество,
  |  ЦеныНоменклатурыСрезПоследних.Цена,
        |  ЦеныНоменклатурыСрезПоследних.Цена  * ВыбрНоменклатура.Количество КАК Сумма  
  |  ИЗ ВыбрНоменклатура КАК ВыбрНоменклатура
  |    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаЦен, 
        |               Номенклатура В (&СписокТоваров) И ТипЦен = &ТипЦен ) КАК ЦеныНоменклатурыСрезПоследних
  |    ПО ВыбрНоменклатура.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура";
  
  Запрос.УстановитьПараметр("СписокТоваров",ТабТоваров.ВыгрузитьКолонку("Номенклатура"));
  Запрос.УстановитьПараметр("ТипЦен",ТипЦены);
  Запрос.УстановитьПараметр("ДатаЦен",ТекущаяДата());
  
  ТабТоваров = Запрос.Выполнить().Выгрузить();
        МенеджерВременныхТаблиц.Закрыть();

В итоге мы получили ту же таблицу, но с уже рассчитанными ценами и суммами. Достаточно легко и оптимально быстро. Обращаю внимание, что одним из параметров отбора регистра мы указали список товаров. Это очень сильно оптимизирует работу при большом количестве записей в регистре, т.к. лишние данные отсекаются уже на этапе выбора цен. Если этого не сделать - будут выбраны все записи из регистра и лишь потом по условию соединения отсекуться лишние записи.
 

Добавить комментарий

:D:lol::-);-)8):-|:-*:oops::sad::cry::o:-?:-x:eek::zzz:P:roll::sigh:
Жирный Курсив Подчеркнутый Зачеркнутый Цитата


Защитный код
Обновить

< Пред.   След. >
Карта сайта
1C-PROFI © 2019
Использование материалов разрешено только с указанием ссылки (для web сайтов гиперссылки)
www.megastock.ru