среда, 16 апреля 2014 г.

Гибкий отбор в таблице значений с использованием построителя запроса

Иногда возникают ситуации, когда нужно сделать отбор в таблице значений используя нечеткое условие, к примеру: больше, меньше, содержит и т.д. Можно, конечно же, использовать перебор в цикле и там уже делать проверку на нечеткие условия, можно использовать метод НайтиСтроки(), вот только отбор, передаваемые туда как параметр, всегда будут иметь вид сравнения - равно.
Что же делать, если нам нужно найти строки в ТЧ и при этом использовать нечеткое условие и не использовать цикл?
Все просто: можно воспользоваться построителем запроса.
Построитель запроса - это объект встроенного языка, с помощью которого мы можем получать необходимые данные, используя отборы.

Пример:
Есть таблица значений ПродукцияТЗ, которая содержит исходные данные. Нужно найти строки, где сумма больше нуля и равна нулю.

вторник, 15 апреля 2014 г.

Конвертация двух табличных частей документа в одну

Для того, чтобы конвертировать две и больше табличные части документа в одну нужно в ПКГС одной из ТЧ в обработчике "ПередОбработкой" написать следующий код:

КоллекцияОбъектов = Источник.ПерваяТабличнаяЧасть.Выгрузить();
Для Каждого
СтрокаТЧ Из Источник.ВтораяТабличнаяЧасть Цикл
   
НовыйСтрока = КоллекцияОбъектов.Добавить();
   
ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаТЧ);
КонецЦикла;

В данном примере сначала в коллекцию объектов выгружаем первую табличную часть, потом обходим вторую ТЧ и дозаполняем коллекцию уже данными из нее.
Правила конвертации второй ТЧ нужно или удалить, или отключить. Они нам уже не понадобятся.

понедельник, 24 марта 2014 г.

У пользователя недостаточно прав на исполнение операции над базой данных

Если при формировании отчета на СКД вы видите сообщение вроде этого:

Ошибка выполнения отчета
по причине:
Ошибка исполнения отчета
по причине:
Ошибка получения данных
по причине:
Ошибка создания набора данных "НаборДанных1"
по причине:
Ошибка при исполнении запроса набора данных
по причине:
Ошибка выполнения запроса
по причине:
У пользователя недостаточно прав на исполнение операции над базой данных.

вторник, 18 марта 2014 г.

Пересчет из валюты в валюту в запросе

Пересчет из валюты в валюту рассмотрим на примере регистра Продажи из УПП.

Пример:
Нужно вывести информацию о ценах проданного товара с пересчетом в заданную валюту на дату документ, т.е. какую валюту пересчета задали в запросе, в такую и пересчитали.

ВЫБРАТЬ РАЗРЕШЕННЫЕ
    КурсыВалют.Период КАК Период,
   
КурсыВалют.Валюта КАК Валюта,
   
КурсыВалют.Курс КАК Курс,
   
КурсыВалют.Кратность
ПОМЕСТИТЬ КурсыВалют
ИЗ
   
РегистрСведений.КурсыВалют КАК КурсыВалют

ИНДЕКСИРОВАТЬ ПО
   
Период,
   
Валюта
;

среда, 12 марта 2014 г.

Типовая функция для пересчета из валюты в валюту

Для пересчета из валюты в валюту в типовых конфигурациях используется функция ПересчитатьИзВалютыВВалюту, расположенная в общем модуле - МодульВалютногоУчета.

Типовая функция для получения курса валют на дату

Для получения курса валюты в таких конфигурациях как: УТ, УТП, УПП и Бухгалтерия существует типовая функция ПолучитьКурсВалюты(Валюта, ДатаКурса), которая располагается в общем модуле МодульВалютногоУчета. Текст функции в данных конфигурациях практически одинаков, отличается, разве что в УПП выводом доп. сообщений и проверкой входных параметров.

четверг, 6 марта 2014 г.

Сохранение параметров и отборов при изменении варианта отчет (толстый клиент)

Как мы знаем, при изменении варианта отчета в СКД, происходит и замена всех его настроек, включая параметры, отборы. Это не очень удобно, т.к. при каждом изменении нужно будет вводить его параметры и отборы вручную. Чтобы выполнить сохранение настроек параметров и отборов при изменении варианта отчета напишем несколько нехитрых строк кода. В качестве примера будет взят ШаблонСКД.epf и в нем доработано сохранение параметров и отборов.