вторник, 31 июля 2012 г.

Язык запросов- параметры

& - Используется в языке запросов для указания системе, что далее будет использовано имя внешнего параметра.

Имя задается в соотвествии с правилами формирования идентификаторов.
Внешние параметры используются для того что-бы в момент формирования системой запроса этот параметр был заменен конкретным значением.
Для определения значения параметра необходимо использовать метод объекта встроенного языка "Запрос" - УстановитьПараметр().

Пример. В тексте запроса существует такая конструкция:
|РасходнаяТовары.Ссылка = &Ссылка

Ниже мы должны воспользоваться методом УстановитьПараметр()
Запрос.УстановитьПараметр("Ссылка", Ссылка);

Здесь "Ссылка" - имя параметра, указанное в запросе, Ссылка - его значение (свойство объекта "ДокументОбъект"), уже известное системе, например, при проведении документа.

Пример использования параметров при разработке отчетов с помощью СКД.
1. Сами внешние параметры определяем в закладке Параметры.
2. В конструкторе запросов полю Дата(документа) устанавливаем условие- (нахождение) Между НачалоПериода и КонецПериода.
!! По другому можно так-  пишем два условия- ...Дата >= &НачалоПериода и ...Дата <= &КонецПериода
3. В запросе видим конструкцию:

ГДЕ
СчетНаОплатуПоставщика.Дата МЕЖДУ &НачалоПериода И &КонецПериода
4. В нашем случае на форму отчета вынесены два реквизита- ДатаНачала и ДатаОкончания.
"Привязку" м/у этими реквизитами и параметрами осуществляем в процедуре, следующей конструкцией:

...
ПараметрДанныхНачалоПериода = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[0];
ПараметрДанныхНачалоПериода.Значение = ДатаНачала;
ПараметрДанныхНачалоПериода.Использование = Истина;

ПараметрДанныхКонецПериода = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[1];
ПараметрДанныхКонецПериода.Значение = ДатаОкончания;
ПараметрДанныхКонецПериода.Использование = Истина;
...

воскресенье, 8 июля 2012 г.

Наименования конструкций и ключевые слова языка 1С 8

- К примеру всем известная конструкция ?(,,) называется вычислить выражение по условию (кажется в 7-мь она называлась Сокращенное Если)
- Секции в таблицах теперь называются Имена

понедельник, 2 июля 2012 г.

Как при выборе элемента справочника отображать любой реквизит (вместо кода или наименования)

Отсюда.
На примере формы списка справочника.
При нажатии на кнопку выбора открывается справочник Коэффициенты (в котором наименование и  код формируются автоматически) имеющий дополнительный реквизит- Значение. Этот дополнительный реквизит и должен отображаться в форме. 
1. Создаем реквизит Коэффициент (Число 10-3) в Справочнике ("владельце" формы списка)
2. В Табличную часть (СправочникСписок) формы списка добавляем созданный реквизит
2. После размещения реквизита в табличной части на форме заходим в его Свойства
3. В разделе Использование (свойств реквизита) ставим флаг- Кнопка Выбора
4. Добавляем Событие- НачалоВыбора, со следующим кодом:
Процедура СправочникСписокКоэффициентНачалоВыбора(Элемент, СтандартнаяОбработка)
 СпрКоэфф = Справочники.Коэффициенты.ПолучитьФормуВыбора(,ЭтаФорма);
 СпрКоэфф.Заголовок = "Выберите коэффициент:";
 Выбор = СпрКоэфф.ОткрытьМодально();
 Элемент.Значение = Выбор.Значение;
 КонецПроцедуры
Минус. В нашей конфигурации справочник Коэффициенты является подчиненным.
При таком способе наш реквизит имеет простой тип данных (Число), поэтому в свойствах колонки (использующей такой реквизит)  пропадает возможность использовать Связь по владельцу!!!

P.S. Первый вариант в источнике работает, но для ФормыСписка справочника надо использовать .ТекущиеДанные., вместо .ТекущаяСтрока..