четверг, 25 августа 2016 г.

Виртуальные столы Windows 10

Win + Ctrl + стрелка влево/вправо – переключение между рабочими столами;
Win + Ctrl + D – создание нового;

среда, 24 августа 2016 г.

ДатаНач и ДатаКон – это границы периодов

 Т.е. дата + указание включения или исключения пограничного значения
Использование дат (СКД)- с. 390 "Разработка сложных отчетов" Хрусталева

понедельник, 8 августа 2016 г.

Простейший пример использования Временных Таблиц и Пакетных Запросов 1С (работает в УТ 10.3)

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

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

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

У меня ПЗ использует внешняя печатная форма ПакетныйЗапрос_Заказ (в папке Примеры и Инфостарт). В ВТ каждой номенклатуре присваивается числовое значение % НДС (актуально т.к. СтавкиНДС это перечисление).

четверг, 28 июля 2016 г.

PostgreSQL для 1С. Мощный пост

- При установке нужно изменить кодировку на UTF8 (и сервер и клиент).
- Перенос баз PostgreSQL на другой диск Windows
1. Останавливаем сервис postgresql.
Пуск — Выполнить, вводим services.msc и жмём Enter... Находим PostgreSQL Database Server, кликаем правой кнопкой мыши, и нажимаем Остановить.
2. Переносим базы.
Выбираем диск, на который необходимо перенести базы. Например диск E. На этом диске создаём папку PostgreSQL\data. В эту папку копируем содержимое  папки, которая создалась по умолчанию при установке PostgreSQL — C:\Program Files (x86)\PostgreSQL\9.1.2-1.1C\data.
3. Меняем путь к базам в реестре Windows.
Пуск — Выполнить, вводим regedit и жмём Enter.
В редакторе реестра переходим к ключу HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\pgsql-9.1.2-1.1C и открываем для изменения строковой параметр  ImagePath.  В нем меняем путь к базам.
Старый путь обычно выглядит так — «C:\Program Files (x86)\PostgreSQL\9.1.2-1.1C\bin\pg_ctl.exe» runservice -w -N «pgsql-9.1.2-1.1C» -D «C:\Program Files (x86)\PostgreSQL\9.1.2-1.1C\data\»
Параметр -D указывает на директорию где хранятся наши базы, поэтому меняем ее на — «E:\PostgreSQL\data\»
То есть полная строка будет выглядеть примерно так — «C:\Program Files (x86)\PostgreSQL\9.1.2-1.1C\bin\pg_ctl.exe» runservice -w -N «pgsql-9.1.2-1.1C» -D «E:\PostgreSQL\data\»
- С предприятием 8.2 "стандартные" версии от 1С работают только до 9.1.9 включительно.
- При использовании 8.2 и Postgre 9.1.9 файл \data\postgresql.conf уже имет правильные настройки.
Если возникает ругань "syntax error at or near "SECOND" at character 227", а при попытке повторного создания "DATABASE не пригоден для использования" то в postgresql.conf нужно заменить соответствующие строки на
escape_string_warning = off
standart_conforming_strings = off
и вероятно (по некоторым источникам) снять коментарий с
backslash_quote = safe_encoding

четверг, 26 мая 2016 г.

вторник, 24 мая 2016 г.

Срез последних регистра сведений на каждую дату (для СКД)


На основе данного кода можно сразу создавать отчет в УТ 10.3 (к примеру ПродажиНижеВыбраннойЦены) !!

ВЫБРАТЬ
Продажи.ДокументПродажи КАК ДокументПродажи,
Продажи.Период,
Продажи.Контрагент,
Продажи.Номенклатура,
Продажи.КоличествоОборот КАК Количество,
Продажи.СтоимостьОборот КАК Стоимость,
ЕСТЬNULL(ВЫБОР
КОГДА Продажи.КоличествоОборот > 0
ТОГДА Продажи.СтоимостьОборот / Продажи.КоличествоОборот
ИНАЧЕ 0
КОНЕЦ, 0) КАК ЦенаДок,
ЦеныНоменклатуры.Цена
ИЗ
РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, День, ) КАК Продажи
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
ПО Продажи.Номенклатура = ЦеныНоменклатуры.Номенклатура
И (ЦеныНоменклатуры.ТипЦен = &ТипЦен)
И (ЦеныНоменклатуры.Период В
(ВЫБРАТЬ
МАКСИМУМ(Цены.Период)
ИЗ
РегистрСведений.ЦеныНоменклатуры КАК Цены
ГДЕ
Цены.Период <= Продажи.Период
И Цены.Номенклатура = Продажи.Номенклатура
И Цены.ТипЦен = &ТипЦен))
ГДЕ
Продажи.Номенклатура.Услуга = ЛОЖЬ

УПОРЯДОЧИТЬ ПО
ДокументПродажи