Поиск по блогу

суббота, 25 июня 2016 г.

Простая реализация формирования отчета в фоновом режиме

Отчеты, разработанные с использованием системы компоновки данных, могут формировать в фоновом режиме. Фоновый режим формирования позволяет пользователям запускать "тяжелые" отчеты и продолжать работу в программе дальше (см. рисунок 1). Очень полезная функция. Реализовать формирование отчета в фоновом режиме можно двумя способами.
Рисунок 1. Формирование отчета в фоновом режиме
Первый способ заключается в том, что разработчик самостоятельно реализует формирование отчета в фоновом режиме. Создается процедура формирования результата, которая выполняется в фоновом задании. После запуска фонового задания подключается обработчик ожидания, который проверяет готовность результат и сигнализирует пользователю о том, что выполняется процесс формирования отчета. Вообщем-то ничего сложного нету, но время отнимет. Плюс данного способа в том, что разработчик сам контролирует процесс формирования отчета, может вывести процент готовности формирования и всякие другие бантики.

четверг, 23 июня 2016 г.

Загрузка установщика Windows 7 на материнской плате с поддержкой Skylake

Увеличиваем свободное место локального диска под ОС Windows

Современные материнские платы, разработанные под процессоры Intel микроархитектуры Skylake, рассчитаны большей частью на операционные системы семейства Windows версии 8.0 и более. Установка Windows 7 на такие материнские платы происходит с некоторыми сложностями, например, во время загрузки установщика происходит зависание компьютера.

В моем распоряжении имеется материнская плата фирмы MSI на базе чипсета B150. Приступив к установке Windows 7, первые Nцать попыток завершились зависанием системы во время загрузки установщика. Виной этому были настройки, установленные производителем по умолчанию.

Прошу извинить меня за отвратительные скриншоты. Хоть материнская плата и имеет современный BIOS UEFI, который позволяет по F12 сохранять скриншот на флэш-накопитель, но к сожалению флэшка должна работать на файловой системе FAT32.

Итак, загружаем BIOS, усиленно нажимаю на Del при старте компьютера и переходим в расширенный режим настроек. В настройках нужно найти пункты, связанные с настройкой USB контроллера и настройкой функционирования ОС Windows (см. рисунок 1), в MSI они находятся в дополнительных настройках.
Рисунок 1. Дополнительные настройки

четверг, 16 июня 2016 г.

Краткое описание моделей восстановления MS SQL

В MS SQL существует три вида резервных копий:
  • полная резервная копия (Full backup);
  • разностная (дифференциальная) резервная копия (Differential backup);
  • резервная копия журнала транзакций.
Полная резервная копия выполняется как правило один раз в несколько дней, а разностная резервная копия выполняется один раз в день. Следовательно, при выполнении таких резервных копий период потери данных, в случае сбоя, составляет минимум один день.
Для сокращения периода потери данных существует возможность создавать копию журнала транзакций, как говорят в народе, бэкап лога.

Журнал транзакций  - это файл, который содержит информацию о том, какие изменения были произведены в базе данных, что было и что стало в результате выполнения каждой транзакции.
Из определения следует вывод, что журнал транзакций не хранит данные, а так же не хранит информацию, которая не требуется для восстановления базы данных (например,  информацию о том, какой план выполнения был у запроса). В журнале транзакций содержится только та информация, которая необходима для восстановления.
Копия журнала транзакций будет иметь более меньший размер, чем рассмотренные выше резервные копии. Так как журнал транзакций имеет маленький размер и не требователен к ресурсам, то его копию можно создавать хоть каждую минуту, но как правило создают один раз в 15-30 минут. Создавая копию журнала транзакций, сокращается период потери данных до нескольких минут.
Создание копии журнала транзакций доступно только у базы данных, для которой указана модель восстановления – полная. Данная модель восстановления по умолчанию устанавливается для новой базы данных 1С.

среда, 8 июня 2016 г.

Правильно определяем контекст

Используя инструкции препроцессора можно определить контекст. Важно правильно определить последовательность выполнения инструкций для более точного определения контекста.

Большой ошибкой является первым выполнение проверки контекста Сервер. В этом случае контекст Толстый клиент и Внешнее соединение, согласно архитектуре платформы, вернут положительный результат. Все дело в том, что контекст Толстый клиент и Внешнее соединение могут выполнять функции сервера, поэтому контекст Сервер проверяется в самую последнюю очередь (см. рисунок 1).
Так же следует сначала проверять контекст Внешнее соединение, потому что в этом контексте проверка на контекст Толстый клиент завершится положительным результатом, так как внешний клиент - это толстый клиент без графической оболочки.
Веб-клиент - это тонкий клиент, который запускается в другом приложении, в качестве приложений выступают веб-браузеры. Поэтому контекст Веб-клиент следует проверять перед контекстом Тонкий клиент.
Рисунок 1. Архитектура платформы

четверг, 2 июня 2016 г.

Функции языка выражений системы компоновки данных

1. Вычислить (Eval) - предназначена для вычисления выражения в контексте некоторой группировки. Функция используется для совместимости с предыдущими версиями платформы. Вместо неё рекомендуется использовать функцию ВычислитьВыражение.

Синтаксис:
Вычислить(Выражение, Группировка, ТипРасчета)

Параметры:
  • Выражение (Строка). Cодержит вычисляемое выражение; 
  • Группировка (Строка). Содержит имя группировки, в контексте которой необходимо вычислить выражение. В случае если в качестве имени группировки используется пустая строка, вычисление будет выполнено в контексте текущей группировки. В случае если в качестве имени группировки будет использована строка ОбщийИтог, вычисление будет выполнено в контексте общего итога. В остальных случаях вычисление будет выполняться в контексте родительской группировки с таким именем.
    Например:
    Сумма(Продажи.СуммаОборот) / Вычислить("Сумма(Продажи.СуммаОборот)", "ОбщийИтог").
    В данном примере в результате получится отношение суммы по полю "Продажи.СуммаОборот" записи группировки к сумме того же поля во всей компоновке.
  • ТипРасчета (Строка). В случае если данный параметр имеет значение "ОбщийИтог", выражение будет вычисляться для всех записей группировки. В случае если значение параметра "Группировка", значения будут вычисляться для текущей групповой записи группировки.