Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.227.102.0] |
|
Сообщ.
#1
,
|
|
|
Subj
|
Сообщ.
#2
,
|
|
|
Интерфейсы, стили
Как задать различные стили 1С:Предприятия для различных категорий пользователей? ОсновнойИнтерфейс = ПользователиИнформационнойБазы.ТекущийПользователь().ОсновнойИнтерфейс.Имя; Если ОсновнойИнтерфейс = "ИнтерфейсКассира" Тогда ГлавныйСтиль = БиблиотекаСтилей.СтильКассира; ИначеЕсли ОсновнойИнтерфейс = "Планирование" Тогда ГлавныйСтиль = БиблиотекаСтилей.СтильПланирования; Иначе ГлавныйСтиль = БиблиотекаСтилей.Основной; КонецЕсли; |
Сообщ.
#3
,
|
|
|
Есть список имен интерфейсов с пометками. Как сделать помеченные интерфейсы видимыми?
СтрокаИменИнтерфейсов = ""; Для Каждого ИмяИнтерфейса из СписокИнтерфесов Цикл Если ИмяИнтерфейса.Пометка Тогда СтрокаИменИнтерфейсов = СтрокаИменИнтерфейсов + ИмяИнтерфейса + ","; КонецЕсли; КонецЦикла; ГлавныйИнтерфейс.ПереключитьИнтерфейс(СтрокаИменИнтерфейсов); |
Сообщ.
#4
,
|
|
|
Как из формы обработки отключить глобальный обработчик ожиданий?
Процедура ПриНачалеРаботыСистемы() ПодключитьОбработчикОжидания("ПроверкаОпроса", 60); КонецПроцедуры Процедура ОтказОтОпроса() Экспорт ОтключитьОбработчикОжидания("ПроверкаОпроса"); КонецПроцедуры ОтказОтОпроса(); |
Сообщ.
#5
,
|
|
|
Запросы, отчеты
Как получить данные из табличной части документов? ВЫБРАТЬ РАЗЛИЧНЫЕ РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура ИЗ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары |
Сообщ.
#6
,
|
|
|
Как получить данные из табличной части документов и представить их в иерархическом виде?
ВЫБРАТЬ РАЗЛИЧНЫЕ РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура ИЗ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары ИТОГИ ПО Номенклатура ТОЛЬКО ИЕРАРХИЯ |
Сообщ.
#7
,
|
|
|
Как подсчитать количество одинаковых элементов в выбираемых данных?
ВЫБРАТЬ РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура, СУММА(РеализацияТоваровУслугТовары.Количество) КАК Количество ИЗ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары СГРУППИРОВАТЬ ПО РеализацияТоваровУслугТовары.Номенклатура |
Сообщ.
#8
,
|
|
|
Как применять условия для отбора по значениям полей, вычисленных как результат агрегатной функции?
ВЫБРАТЬ РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура, СУММА(РеализацияТоваровУслугТовары.Количество) КАК Количество ИЗ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары СГРУППИРОВАТЬ ПО РеализацияТоваровУслугТовары.Номенклатура ИМЕЮЩИЕ СУММА(РеализацияТоваровУслугТовары.Количество) > 10 |
Сообщ.
#9
,
|
|
|
Как ограничить выборку из виртуальной таблицы?
ВЫБРАТЬ ПродажиОбороты.Номенклатура КАК Номенклатура ИЗ РегистрНакопления.Продажи.Обороты(&ДатаНач, &ДатаКон) КАК ПродажиОбороты |
Сообщ.
#10
,
|
|
|
Как просуммировать данные по одинаковым значениям одного из полей выборки?
ВЫБРАТЬ ПродажиОбороты.Подразделение КАК Подразделение, ПродажиОбороты.Номенклатура КАК Номенклатура, ПродажиОбороты.КоличествоОборот, ПродажиОбороты.СтоимостьОборот КАК СтоимостьОборот ИЗ РегистрНакопления.Продажи.Обороты((&ДатаНач, &ДатаКон) КАК ПродажиОбороты ИТОГИ СУММА(СтоимостьОборот) ПО Подразделение |
Сообщ.
#11
,
|
|
|
Как получить только те записи, в которых значение определенного поля превышает указанное значение?
ВЫБРАТЬ ПродажиОбороты.Подразделение КАК Подразделение, ПродажиОбороты.Номенклатура КАК Номенклатура, ПродажиОбороты.КоличествоОборот, ПродажиОбороты.СтоимостьОборот КАК СтоимостьОборот ИЗ РегистрНакопления.Продажи.Обороты(&ДатаНач, &ДатаКон, , Подразделение = &Подразделение) КАК ПродажиОбороты ГДЕ ПродажиОбороты.КоличествоОборот > &Порог |
Сообщ.
#12
,
|
|
|
Как обратиться к подчиненным полям в запросе?
ВЫБРАТЬ ПродажиОбороты.ДоговорКонтрагента.Владелец, ПродажиОбороты.КоличествоОборот, ПродажиОбороты.СтоимостьОборот КАК СтоимостьОборот ИЗ РегистрНакопления.Продажи.Обороты(&ДатаНач, &ДатаКон) КАК ПродажиОбороты ВЫБРАТЬ ПродажиОбороты.ДоговорКонтрагента.Владелец, СУММА(ПродажиОбороты.КоличествоОборот) КАК КоличествоОборот, СУММА(ПродажиОбороты.СтоимостьОборот) КАК СтоимостьОборот ИЗ РегистрНакопления.Продажи.Обороты((&ДатаНач, &ДатаКон) КАК ПродажиОбороты СГРУППИРОВАТЬ ПО ПродажиОбороты.ДоговорКонтрагента.Владелец |
Сообщ.
#13
,
|
|
|
Как объединить результаты нескольких запросов?
ВЫБРАТЬ РАЗЛИЧНЫЕ РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура ИЗ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары ОБЪЕДИНИТЬ ВЫБРАТЬ РАЗЛИЧНЫЕ РеализацияТоваровУслугВозвратнаяТара.Номенклатура ИЗ Документ.РеализацияТоваровУслуг.ВозвратнаяТара КАК РеализацияТоваровУслугВозвратнаяТара ОБЪЕДИНИТЬ ВЫБРАТЬ РАЗЛИЧНЫЕ РеализацияТоваровУслугУслуги.Номенклатура ИЗ Документ.РеализацияТоваровУслуг.Услуги КАК РеализацияТоваровУслугУслуги |
Сообщ.
#14
,
|
|
|
Как выбрать данные из двух таблиц, удовлетворяющие определенному условию?
ВЫБРАТЬ ЗаказыПокупателейОстатки.Номенклатура, ЗаказыПокупателейОстатки.КоличествоОстаток КАК ЗаказаноПокупателями, ЗаказыПоставщикамОстатки.КоличествоОстаток КАК ЗаказаноПоставщикам ИЗ РегистрНакопления.ЗаказыПокупателей.Остатки(&ДатаОтч) КАК ЗаказыПокупателейОстатки ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыПоставщикам.Остатки(&ДатаОтч) КАК ЗаказыПоставщикамОстатки ПО ЗаказыПокупателейОстатки.Номенклатура = ЗаказыПоставщикамОстатки.Номенклатура |
Сообщ.
#15
,
|
|
|
Как дополнить данные одной таблицы данными, выбранными из другой таблицы по определенному условию?
ВЫБРАТЬ ЗаказыПокупателейОстатки.Номенклатура, ЗаказыПокупателейОстатки.КоличествоОстаток КАК ЗаказаноПокупателями, ЗаказыПоставщикамОстатки.КоличествоОстаток КАК ЗаказаноПоставщикам ИЗ РегистрНакопления.ЗаказыПокупателей.Остатки(&ДатаОтч) КАК ЗаказыПокупателейОстатки ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыПоставщикам.Остатки(&ДатаОтч) КАК ЗаказыПоставщикамОстатки ПО ЗаказыПокупателейОстатки.Номенклатура = ЗаказыПоставщикамОстатки.Номенклатура |
Сообщ.
#16
,
|
|
|
Как объединить данные из двух таблиц по определенному условию?
ВЫБРАТЬ ВЫБОР КОГДА (ЗаказыПокупателейОстатки.Номенклатура) ЕСТЬ NULL ТОГДА ЗаказыПоставщикамОстатки.Номенклатура ИНАЧЕ ЗаказыПокупателейОстатки.Номенклатура КОНЕЦ КАК Номенклатура, ЗаказыПокупателейОстатки.КоличествоОстаток КАК ЗаказаноПокупателями, ЗаказыПоставщикамОстатки.КоличествоОстаток КАК ЗаказаноПоставщикам ИЗ РегистрНакопления.ЗаказыПокупателей.Остатки(&ДатаОтч) КАК ЗаказыПокупателейОстатки ПОЛНОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыПоставщикам.Остатки(&ДатаОтч) КАК ЗаказыПоставщикамОстатки ПО ЗаказыПокупателейОстатки.Номенклатура = ЗаказыПоставщикамОстатки.Номенклатура ВЫБРАТЬ ВложенныйЗапрос.Номенклатура, СУММА(ВложенныйЗапрос.ЗаказаноПокупателями) КАК ЗаказаноПокупателями, СУММА(ВложенныйЗапрос.ЗаказаноПоставщикам) КАК ЗаказаноПоставщикам ИЗ (ВЫБРАТЬ ЗаказыПокупателейОстатки.Номенклатура КАК Номенклатура, ЗаказыПокупателейОстатки.КоличествоОстаток КАК ЗаказаноПокупателями, 0 КАК ЗаказаноПоставщикам ИЗ РегистрНакопления.ЗаказыПокупателей.Остатки(&ДатаОтч, ) КАК ЗаказыПокупателейОстатки ОБЪЕДИНИТЬ ВЫБРАТЬ ЗаказыПоставщикамОстатки.Номенклатура, 0, ЗаказыПоставщикамОстатки.КоличествоОстаток ИЗ РегистрНакопления.ЗаказыПоставщикам.Остатки(&ДатаОтч, ) КАК ЗаказыПоставщикамОстатки ) КАК ВложенныйЗапрос СГРУППИРОВАТЬ ПО ВложенныйЗапрос.Номенклатура |
Сообщ.
#17
,
|
|
|
Как вывести некоторое значение вместо NULL в запросе?
ВЫБРАТЬ ЕСТЬNULL(Справочник.Номенклатура.Артикул, "---") КАК Артикул, Справочник.Номенклатура.Представление КАК Номенклатура |
Сообщ.
#18
,
|
|
|
Как вместе с данными некоторой таблицы получить общие итоги из этой же таблицы?
ВЫБРАТЬ ПродажиОбороты.Номенклатура КАК Номенклатура, ПродажиОбороты.СуммаОборот КАК СуммаПродаж, ПродажиОбороты.СуммаОборот / СовокупныеОбороты.СуммаОборот * 100 КАК ПроцентнаяДоля ИЗ РегистрНакопления.Продажи.Обороты(&ДатаНач, &ДатаКон) КАК ПродажиОбороты ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(&ДатаНач, &ДатаКон) КАК СовокупныеОбороты ПО ИСТИНА УПОРЯДОЧИТЬ ПО ПроцентнаяДоля УБЫВ |
Сообщ.
#19
,
|
|
|
Как получить иерархические итоги по группе справочника?
ВЫБРАТЬ ТоварыГруппы.Ссылка КАК Номенклатура, ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток ИЗ (ВЫБРАТЬ Номенклатура.Ссылка КАК Ссылка ИЗ Справочник.Номенклатура КАК Номенклатура ГДЕ Номенклатура.Родитель В ИЕРАРХИИ(&Группа) И (Номенклатура.ЭтоГруппа = ЛОЖЬ) ) КАК ТоварыГруппы ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(&МоментПолучения, Номенклатура В ИЕРАРХИИ (&Группа)) КАК ТоварыНаСкладахОстатки ПО ТоварыГруппы.Ссылка = ТоварыНаСкладахОстатки.Номенклатура ИТОГИ СУММА(КоличествоОстаток) ПО Номенклатура ТОЛЬКО ИЕРАРХИЯ |
Сообщ.
#20
,
|
|
|
Как по состоянию на заданную дату по регистру "ОстаткиНаСкладе" найти последний документ "ПоступлениеТоваровУслуг", по которому приходила номенклатура?
ВЫБРАТЬ ВложенныйЗапрос.Номенклатура, МАКСИМУМ(ТоварыНаСкладах.Регистратор) КАК Регистратор ИЗ (ВЫБРАТЬ ТоварыНаСкладах.Номенклатура КАК Номенклатура, МАКСИМУМ(ТоварыНаСкладах.Период) КАК Период ИЗ РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах ГДЕ ТоварыНаСкладах.Период <= &ДатаОтчета И (ТоварыНаСкладах.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг) СГРУППИРОВАТЬ ПО ТоварыНаСкладах.Номенклатура ) КАК ВложенныйЗапрос ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах ПО ВложенныйЗапрос.Номенклатура = ТоварыНаСкладах.Номенклатура И ВложенныйЗапрос.Период = ТоварыНаСкладах.Период ГДЕ (ТоварыНаСкладах.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг) СГРУППИРОВАТЬ ПО ВложенныйЗапрос.Номенклатура |
Сообщ.
#21
,
|
|
|
Как подсчитать количество записей с одинаковым значением некоторого поля?
ВЫБРАТЬ Контрагенты.ОсновнойМенеджерПокупателя, КОЛИЧЕСТВО(Контрагенты.Ссылка) КАК КоличествоЗакрепленных ИЗ Справочник.Контрагенты КАК Контрагенты ГДЕ (Контрагенты.ЭтоГруппа = ЛОЖЬ) И (Контрагенты.ОсновнойМенеджерПокупателя <> &НеЗаполненМенеджер) СГРУППИРОВАТЬ ПО Контрагенты.ОсновнойМенеджерПокупателя УПОРЯДОЧИТЬ ПО КоличествоЗакрепленных УБЫВ |
Сообщ.
#22
,
|
|
|
Как в итоговых записях вывести количество различных записей?
ВЫБРАТЬ Контрагенты.ОсновнойМенеджерПокупателя.Представление КАК ОсновнойМенеджерПокупателя, Контрагенты.Представление, 1 КАК КоличествоЗакрепленных ИЗ Справочник.Контрагенты КАК Контрагенты ГДЕ (Контрагенты.ЭтоГруппа = ЛОЖЬ) УПОРЯДОЧИТЬ ПО КоличествоЗакрепленных УБЫВ ИТОГИ КОЛИЧЕСТВО(КоличествоЗакрепленных) ПО ОсновнойМенеджерПокупателя |
Сообщ.
#23
,
|
|
|
Как узнать количество записей в результате запроса?
Результат = Запрос.Выполнить(); КолЗаписей = Результат.Выбрать().Количество(); |
Сообщ.
#24
,
|
|
|
Как проверить достаточность остатков товаров на складах, указанных в документе?
ВЫБРАТЬ ВложенныйЗапрос.Номенклатура, ВложенныйЗапрос.Размещение КАК Склад, ВложенныйЗапрос.КоличествоСписываемое, ТоварыНаСкладахОстатки.КоличествоОстаток ИЗ (ВЫБРАТЬ ВнутреннийЗаказТовары.Номенклатура КАК Номенклатура, ВнутреннийЗаказТовары.Размещение КАК Размещение, СУММА(ВнутреннийЗаказТовары.Количество *ВнутреннийЗаказТовары.Коэффициент) КАК КоличествоСписываемое ИЗ Документ.ВнутреннийЗаказ.Товары КАК ВнутреннийЗаказТовары ГДЕ ВнутреннийЗаказТовары.Ссылка = &Ссылка СГРУППИРОВАТЬ ПО ВнутреннийЗаказТовары.Номенклатура, ВнутреннийЗаказТовары.Размещение ) КАК ВложенныйЗапрос ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(&МоментВремениДокумента, Склад В (ВЫБРАТЬ РАЗЛИЧНЫЕ ВЫРАЗИТЬ(ВнутреннийЗаказТоварыДляОтбора.Размещение КАК Справочник.Склады) ИЗ Документ.ВнутреннийЗаказ.Товары КАК ВнутреннийЗаказТоварыДляОтбора ГДЕ ВнутреннийЗаказТоварыДляОтбора.Ссылка = &Ссылка И НЕ ВЫРАЗИТЬ(ВнутреннийЗаказТоварыДляОтбора.Размещение КАК Справочник.Склады) ЕСТЬ NULL) И Номенклатура В (ВЫБРАТЬ РАЗЛИЧНЫЕ ВнутреннийЗаказТоварыДляОтбора.Номенклатура ИЗ Документ.ВнутреннийЗаказ.Товары КАК ВнутреннийЗаказТоварыДляОтбора ГДЕ ВнутреннийЗаказТоварыДляОтбора.Ссылка = &Ссылка)) КАК ТоварыНаСкладахОстатки ПО ВложенныйЗапрос.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура И ВложенныйЗапрос.Размещение = ТоварыНаСкладахОстатки.Склад |
Сообщ.
#25
,
|
|
|
Как в запросе осуществить отбор по значению перечисления?
Запрос.Текст = "ВЫБРАТЬ | ВоинскийУчетСрезПоследних.Физлицо |ИЗ | РегистрСведений.ВоинскийУчет.СрезПоследних(&ДатаОтчета) КАК ВоинскийУчетСрезПоследних |ГДЕ | ВоинскийУчетСрезПоследних.ОтношениеКВоинскомуУчету = &Состоит" Запрос.УстановитьПараметр("ДатаОтчета", ДатаОтчета); Запрос.УстановитьПараметр("Состоит", Перечисления.ОтношениеКВоинскомуУчету.Состоит); |
Сообщ.
#26
,
|
|
|
Как получить курсы валют на две интересующие даты?
ВЫБРАТЬ ВалютыСрезПоследних.Валюта, ВалютыСрезПоследних.Курс, &ПерваяДата Как Дата ИЗ РегистрСведений.Валюты.СрезПоследних(&ПерваяДата, ) КАК ВалютыСрезПоследних ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ВалютыСрезПоследних.Валюта, ВалютыСрезПоследних.Курс, &ВтораяДата ИЗ РегистрСведений.Валюты.СрезПоследних(&ВтораяДата, ) КАК ВалютыСрезПоследних |
Сообщ.
#27
,
|
|
|
Как одним запросом получить таблицу расхождений курсов взаиморасчетов всех выписанных документов "ЗаказПокупателя" с официальным курсом?
ВЫБРАТЬ ВложенныйЗапрос.Ссылка КАК Документ, ВложенныйЗапрос.ДоговорКонтрагентаВалютаВзаиморасчетов КАК ВалютаДоговора, ВложенныйЗапрос.КурсВзаиморасчетов, ВЫБОР КОГДА КурсыВалют.Курс ЕСТЬ NULL ТОГДА 0 ИНАЧЕ КурсыВалют.Курс КОНЕЦ КАК КурсОфициальный, ВЫБОР КОГДА КурсыВалют.Курс ЕСТЬ NULL ТОГДА ВложенныйЗапрос.КурсВзаиморасчетов ИНАЧЕ ВложенныйЗапрос.КурсВзаиморасчетов - КурсыВалют.Курс КОНЕЦ КАК Превышение ИЗ (ВЫБРАТЬ ЗаказПокупателя.Ссылка КАК Ссылка, МАКСИМУМ(КурсыВалют.Период) КАК Период, ЗаказПокупателя.КурсВзаиморасчетов КАК КурсВзаиморасчетов, ЗаказПокупателя.ДоговорКонтрагента.ВалютаВзаиморасчетов КАК ДоговорКонтрагентаВалютаВзаиморасчетов ИЗ Документ.ЗаказПокупателя КАК ЗаказПокупателя ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК КурсыВалют ПО ЗаказПокупателя.ДоговорКонтрагента.ВалютаВзаиморасчетов = КурсыВалют.Валюта И ЗаказПокупателя.Дата >= КурсыВалют.Период СГРУППИРОВАТЬ ПО ЗаказПокупателя.КурсВзаиморасчетов, ЗаказПокупателя.ДоговорКонтрагента.ВалютаВзаиморасчетов, ЗаказПокупателя.Ссылка ) КАК ВложенныйЗапрос ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК КурсыВалют ПО ВложенныйЗапрос.ДоговорКонтрагентаВалютаВзаиморасчетов = КурсыВалют.Валюта И ВложенныйЗапрос.Период = КурсыВалют.Период |
Сообщ.
#28
,
|
|
|
Как написать запрос таким образом, чтобы на определенном уровне иерархии запроса считались одни итоговые функции, а на другом уровне другие?
ВЫБРАТЬ ОстаткиТоваровКомпанииОстатки.Номенклатура КАК Номенклатура, ОстаткиТоваровКомпанииОстатки.Номенклатура.Представление, ОстаткиТоваровКомпанииОстатки.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, ОстаткиТоваровКомпанииОстатки.ХарактеристикаНоменклатуры.Представление, ОстаткиТоваровКомпанииОстатки.КоличествоОстаток КАК КоличествоОстаток, NULL как Заказ, 0 КАК Резерв ИЗ РегистрНакопления.ОстаткиТоваровКомпании.Остатки КАК ОстаткиТоваровКомпанииОстатки ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ЗаказыПокупателейОстатки.Номенклатура, ЗаказыПокупателейОстатки.Номенклатура.Представление, ЗаказыПокупателейОстатки.ХарактеристикаНоменклатуры, ЗаказыПокупателейОстатки.ХарактеристикаНоменклатуры.Представление, 0, ЗаказыПокупателейОстатки.ЗаказПокупателя, ЗаказыПокупателейОстатки.КоличествоОстаток ИЗ РегистрНакопления.ЗаказыПокупателей.Остатки КАК ЗаказыПокупателейОстатки ИТОГИ СУММА(КоличествоОстаток), СУММА(Резерв) ПО Номенклатура, ХарактеристикаНоменклатуры |
Сообщ.
#29
,
|
|
|
Как получить перечень документов, приведших данные подчиненного периодического регистра сведений к определенному состоянию?
ВЫБРАТЬ КандидатыНаРаботу.ФизЛицо КАК ФизЛицо, КандидатыНаРаботу.Регистратор КАК Документ, КандидатыНаРаботу.Статус КАК Статус ИЗ РегистрСведений.КандидатыНаРаботу.СрезПоследних(&ДатаОтчета, ) КАК КандидатыНаРаботуСрезПоследних ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КандидатыНаРаботу КАК КандидатыНаРаботу ПО КандидатыНаРаботуСрезПоследних.ФизЛицо = КандидатыНаРаботу.ФизЛицо ГДЕ КандидатыНаРаботуСрезПоследних.Статус = &Отложен И КандидатыНаРаботу.Период <= &ДатаОтчета УПОРЯДОЧИТЬ ПО КандидатыНаРаботу.ФизЛицо.Наименование, Документ ИТОГИ МАКСИМУМ(Статус) ПО ФизЛицо АВТОУПОРЯДОЧИВАНИЕ |
Сообщ.
#30
,
|
|
|
Как установить параметры запроса, если текст запроса заранее не известен?
Запрос = Новый Запрос(" |ВЫБРАТЬ | Номенклатура.Ссылка |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | Номенклатура.Ссылка В ИЕРАРХИИ(&ГруппаНоменклатуры)"); // Получить описание параметров запроса. ПараметрыЗапроса = Запрос.НайтиПараметры(); Для Каждого ПараметрЗапроса Из ПараметрыЗапроса Цикл ЗаданноеЗначение = Неопределено; // Открыть диалог ввода значения данного параметра. Если ВвестиЗначение(ЗаданноеЗначение, "Задайте значение параметра " + ПараметрЗапроса.Имя, ПараметрЗапроса.ТипЗначения) Тогда Запрос.УстановитьПараметр(ПараметрЗапроса.Имя, ЗаданноеЗначение); Иначе Возврат; КонецЕсли; КонецЦикла; РезультатЗапроса = Запрос.Выполнить(); |
Сообщ.
#31
,
|
|
|
Анализ данных
Как получить данные о товарах продаваемых вместе? Анализ = Новый АнализДанных; // Выбранный тип анализа как раз и указывает на то, что ищем // "совместно продаваемые" товары. Анализ.ТипАнализа = Тип("АнализДанныхПоискАссоциаций"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ПродажиКомпанииОбороты.Регистратор Как ДокументПродажи, | ПродажиКомпанииОбороты.Номенклатура |ИЗ | РегистрНакопления.ПродажиКомпании.Обороты(&НачПериода, &КонПериода, Регистратор) КАК ПродажиКомпанииОбороты |УПОРЯДОЧИТЬ ПО | ДокументПродажи"; Запрос.УстановитьПараметр("НачПериода", НачПериода); Запрос.УстановитьПараметр("КонПериода", КонПериода); // Получить продажи за указанный период. // Выбрана периодичность по Регистратору, т.к. необходимо получить // данные о совместных продажах в рамках одной покупки. Анализ.ИсточникДанных = Запрос.Выполнить(); // Выполнить анализ в соответствии с указанным источником. РезультатАнализа = Анализ.Выполнить(); // Для вывода результата анализа воспользуемся построителем // отчета анализа данных. Построитель = Новый ПостроительОтчетаАнализаДанных(); Построитель.Макет = Неопределено; Построитель.ТипАнализа = Тип("АнализДанныхПоискАссоциаций"); ТабДок = Новый ТабличныйДокумент; Построитель.Вывести(РезультатАнализа, ТабДок); ТабДок.Показать(); |
Сообщ.
#32
,
|
|
|
Как порекомендовать сопутствующие товары?
Анализ = Новый АнализДанных; // Найти ассоциации. Анализ.ТипАнализа = Тип("АнализДанныхПоискАссоциаций"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ПродажиКомпанииОбороты.Регистратор КАК ДокументПродажи, | ПродажиКомпанииОбороты.Номенклатура |ИЗ | РегистрНакопления.ПродажиКомпании.Обороты(&НачПериода, &КонПериода, Регистратор) КАК ПродажиКомпанииОбороты |УПОРЯДОЧИТЬ ПО | ДокументПродажи"; // Ассоциации ищем подокументно, это определяется поведением // объекта "АнализДанных" "по умолчанию" при выборе // периодичности виртуальной таблицы Регистратор Запрос.УстановитьПараметр("НачПериода", НачПериода); Запрос.УстановитьПараметр("КонПериода", КонПериода); Анализ.ИсточникДанных = Запрос.Выполнить(); РезультатАнализа = Анализ.Выполнить(); // Исходя из полученного анализа создать прогноз. МодельПрогноза = РезультатАнализа.СоздатьМодельПрогноза(); // ТЗ- таблица значений, содержащая данные о том, // какие номенклатурные позиции вошли в "текущую" покупку. МодельПрогноза.ИсточникДанных = ТЗ; // ТП - элемент управления "Табличное поле" связанный через // свойство "Данные" с реквизитом формы "ТП" (тип ТаблицаЗначений) ТП = МодельПрогноза.Выполнить(); ЭлементыФормы.ТП.СоздатьКолонки(); |
Сообщ.
#33
,
|
|
|
Как посмотреть, что будет покупаться в дальнейшем?
ТабДок = Новый ТабличныйДокумент; Анализ = Новый АнализДанных; // Нужно спрогнозировать цепочку событий, поэтому выбираем // тип анализа "Поиск последовательностей". Анализ.ТипАнализа = Тип("АнализДанныхПоискПоследовательностей"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ПродажиКомпанииОбороты.ДоговорВзаиморасчетовПокупателя.Владелец КАК Контрагент, | ПродажиКомпанииОбороты.Номенклатура, | ПродажиКомпанииОбороты.Период |ИЗ | РегистрНакопления.ПродажиКомпании.Обороты(&НачПериода, &КонПериода, Регистратор) КАК ПродажиКомпанииОбороты"; Запрос.УстановитьПараметр("НачПериода", НачПериода); Запрос.УстановитьПараметр("КонПериода", КонПериода); Анализ.ИсточникДанных = Запрос.Выполнить(); Колонка = Анализ.НастройкаКолонок.Найти("Период"); // Указать, что колонка "Период" имеет тип "Время", // что "позволит понять" хронологию событий Колонка.ТипКолонки = ТипКолонкиАнализаДанныхПоискПоследовательностей.Время; РезультатАнализа = Анализ.Выполнить(); МодельПрогноза = РезультатАнализа.СоздатьМодельПрогноза(); // ТЗ- таблица значений, содержащая исходные данные для прогноза // например, какой контрагент, какой товар закупил (исходя из чего // попытаемся узнать, что они еще закупят). МодельПрогноза.ИсточникДанных = ТЗ; // ТП - элемент управления "Табличное поле" связанный через // свойство "Данные" с реквизитом формы "ТП" //(тип ТаблицаЗначений) ТП = МодельПрогноза.Выполнить(); ЭлементыФормы.ТП.СоздатьКолонки(); // Построитель - реквизит формы, имеющий тип // ПостроительОтчетаАнализаДанных. Ряд табличных полей / / в диалоге могут быть связаны со свойствами-коллекциями // данного объекта Построитель.ТипАнализа = Тип("АнализДанныхПоискПоследовательностей"); Построитель.Вывести(РезультатАнализа, ТабДок); ТабДок.Показать(); |
Сообщ.
#34
,
|
|
|
Представление результатов отчетов
Как вывести результат запроса в табличный документ? Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ОстаткиТоваровКомпанииОстатки.СкладКомпании КАК СкладКомпанииСсылка, | ОстаткиТоваровКомпанииОстатки.Номенклатура КАК НоменклатураСсылка, | СУММА(ОстаткиТоваровКомпанииОстатки.КоличествоОстаток) КАК Остаток, | ОстаткиТоваровКомпанииОстатки.Номенклатура.Представление КАК Номенклатура, | ОстаткиТоваровКомпанииОстатки.СкладКомпании.Представление КАК Склад |ИЗ | РегистрНакопления.ОстаткиТоваровКомпании.Остатки(&Момент) КАК ОстаткиТоваровКомпанииОстатки |СГРУППИРОВАТЬ ПО | ОстаткиТоваровКомпанииОстатки.СкладКомпанииСсылка, | ОстаткиТоваровКомпанииОстатки.НоменклатураСсылка |ИТОГИ СУММА(Остаток) ПО | Общие, | Склад"; Запрос.УстановитьПараметр("Момент", Неопределено); Результат = Запрос.Выполнить(); // Получить поле табличного документа, в которое будем выводить результат. ТабДок = ЭлементыФормы.ПолеТабличногоДокумента; // Очистить данные в табличном документе // (возможно данные уже выводились ранее). ТабДок.Очистить(); Макет = ПолучитьМакет("Макет"); // Получить именованные области из макета. ОбластьОбщийИтог = Макет.ПолучитьОбласть("ОбщийИтог"); ОбластьСклад = Макет.ПолучитьОбласть("Склад"); ОбластьНоменклатура = Макет.ПолучитьОбласть("Номенклатура"); // Получить выборку по первой итоговой группировке (первый уровень). ВыборкаОбщийИтог = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); // Запись общего итога всегда одна, поэтому можно обойтись без организации цикла. ВыборкаОбщийИтог.Следующий(); // Произвести запись данных из полей выборки в именованные // области с совпадающими именами. ОбластьОбщийИтог.Параметры.Заполнить(ВыборкаОбщийИтог); // Включить область с заполненными параметрами в табличный документ. ТабДок.Вывести(ОбластьОбщийИтог); // "От" записи первого уровня получить подчиненную выборку // записей второго уровня (по итоговой группировке "Склад"). ВыборкаПоСкладу = ВыборкаОбщийИтог.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаПоСкладу.Следующий() Цикл ОбластьСклад.Параметры.Заполнить(ВыборкаПоСкладу); ТабДок.Вывести(ОбластьСклад); // Получить подчиненную выборку, содержащую детальные записи. ВыборкаПоНоменклатуре = ВыборкаПоСкладу.Выбрать(); Пока ВыборкаПоНоменклатуре.Следующий() Цикл ОбластьНоменклатура.Параметры.Заполнить(ВыборкаПоНоменклатуре); ТабДок.Вывести(ОбластьНоменклатура); КонецЦикла; КонецЦикла; |
Сообщ.
#35
,
|
|
|
Как вывести данные в табличный документ с возможностью сворачивания и разворачивания данных по группировкам?
// Перед выводом данных в табличный документ используется метод: ТабДок.НачатьАвтогруппировкуСтрок(); // Выести область с указанием уровня. ТабДок.Вывести(ОбластьОбщийИтог, ВыборкаОбщийИтог.Уровень()); // В конце работы с табличным документом необходимо выполнить // следующий метод: ТабДок.ЗакончитьАвтогруппировкуСтрок(); |
Сообщ.
#36
,
|
|
|
Как при выводе данных в табличный документ свернуть все выводимые группировки?
УровеньГруппировки = 1; //содержит индекс, с нуля ТабДок.ЗакончитьАвтогруппировкуСтрок(); ТабДок.ПоказатьУровеньГруппировокСтрок(УровеньГруппировки); |
Сообщ.
#37
,
|
|
|
Как при выводе данных в табличный документ произвольно определить состав свернутых и развернутых группировок?
ТабДок.Вывести(ОбластьНоменклатура, ВыборкаПоНоменклатуре.Уровень(), , Ложь); |
Сообщ.
#38
,
|
|
|
Как выгрузить результат запроса с показом иерархии?
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ПродажиКомпанииОбороты.Номенклатура КАК Номенклатура, | ПродажиКомпанииОбороты.КоличествоОборот КАК КоличествоОборот |ИЗ | РегистрНакопления.ПродажиКомпании.Обороты(&НачПериода, &КонПериода, , ) КАК ПродажиКомпанииОбороты |ИТОГИ СУММА(КоличествоОборот) ПО | Номенклатура ИЕРАРХИЯ"; Запрос.УстановитьПараметр("НачПериода", НачПериода); Запрос.УстановитьПараметр("КонПериода", КонПериода); Результат = Запрос.Выполнить(); // Осуществить выгрузку с сохранением иерархии. ЭлементыФормы.ТП.Значение = Результат.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам); ЭлементыФормы.ТП.СоздатьКолонки(); |
Сообщ.
#39
,
|
|
|
Где и как можно увидеть макет, автоматически генерируемый построителем отчета?
ПостроительОтчета.Макет = Неопределено; ПостроительОтчета.Макет.Показать() |
Сообщ.
#40
,
|
|
|
Как из построителя отчета передать данные в сводную таблицу?
ЭлементыФормы.ДокументРезультат.ВстроенныеТаблицы.СводнаяТаблица.ИсточникДанных = ПостроительОтчетаОтчет; ЭлементыФормы.ДокументРезультат.ВстроенныеТаблицы.СводнаяТаблица.ОтображатьПоля = Истина; |
Сообщ.
#41
,
|
|
|
Отчет формируется построителем отчета. Как убрать одну из колонок, поместив ее данные в расшифровку другой?
Процедура АлфавитныйПереченьКандидатовСРасшифровкой() ПостроительОтчета = Новый ПостроительОтчета; ПостроительОтчета.Текст ="ВЫБРАТЬ | РегистрацияСобеседованияКандидата.ФизЛицо КАК Кандидат, | РегистрацияСобеседованияКандидата.РезультатСобеседования КАК Результат, | РегистрацияСобеседованияКандидата.Ссылка |ИЗ | Документ.РегистрацияСобеседованияКандидата КАК РегистрацияСобеседованияКандидата |УПОРЯДОЧИТЬ ПО | РегистрацияСобеседованияКандидата.ФизЛицо.Наименование"; ПостроительОтчета.Выполнить(); Макет = ПостроительОтчета.Макет; // Очистить области, связанные с ссылкой. ТекущаяОбласть = Неопределено; Пока Истина Цикл ТекущаяОбласть = Макет.НайтиТекст("Ссылка", ТекущаяОбласть, Макет.Область()); Если ТекущаяОбласть = Неопределено Тогда Прервать; Иначе ТекущаяОбласть.Очистить(Истина, Истина, Истина); КонецЕсли; КонецЦикла; // Заполнить параметр расшифровки для областей, где параметр = "Результат". ТекущаяОбласть = Неопределено; Пока Истина Цикл ТекущаяОбласть = Макет.НайтиТекст("Результат", ТекущаяОбласть, Макет.Область()); Если ТекущаяОбласть = Неопределено Тогда Прервать; Иначе Если ТекущаяОбласть.Параметр = "Результат" Тогда ТекущаяОбласть.ПараметрРасшифровки = "Ссылка"; КонецЕсли; КонецЕсли; КонецЦикла; ПостроительОтчета.Макет = Макет; ПостроительОтчета.Вывести(); КонецПроцедуры |
Сообщ.
#42
,
|
|
|
Как сохранить настройки построителя отчета до следующего открытия формы отчета?
СохранитьЗначение("НастройкаПостроителяДляОтчетаПродажи" + Метаданные().Имя, ПостроительОтчета.ПолучитьНастройки()); // До установки настроек они ранее должны были быть заполнены // по тексту запроса. ПостроительОтчета.ЗаполнитьНастройки(); // Установить настройки построителя отчета. Настройка = ВосстановитьЗначение("НастройкаПостроителяДляОтчетаПродажи" + Метаданные().Имя); Если Настройка <> Неопределено Тогда ПостроительОтчета.УстановитьНастройки(Настройка); КонецЕсли; |
Сообщ.
#43
,
|
|
|
Как организовать показ примечаний в формируемом табличном документе?
Процедура Отчет(ДатаНач, ДатаКон) Экспорт Запрос = Новый Запрос; // Сбор данных. Запрос.Текст = "ВЫБРАТЬ | Событие.Ответственный КАК Ответственный, | Событие.Дата, | Событие.ВидСобытия, | Событие.Контрагент, | Событие.СодержаниеСобытия, | Событие.ОписаниеСобытия |ИЗ | Документ.Событие КАК Событие |ГДЕ | Событие.Дата МЕЖДУ &ДатаНач И &ДатаКон И (Событие.Проведен) И Событие.СостояниеСобытия = &Завершено |УПОРЯДОЧИТЬ ПО | Ответственный"; Запрос.УстановитьПараметр("ДатаКон", ДатаКон); Запрос.УстановитьПараметр("ДатаНач", ДатаНач); Запрос.УстановитьПараметр("Завершено", Перечисления.СостоянияСобытий.Завершено); Результат = Запрос.Выполнить(); // Сформировать табличный документ. Макет = ПолучитьМакет("Отчет"); ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок"); ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы"); ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали"); ТабДок = Новый ТабличныйДокумент; ОбластьЗаголовок.Параметры.ДатаНач = ДатаНач; ОбластьЗаголовок.Параметры.ДатаКон = ДатаКон; ТабДок.Вывести(ОбластьЗаголовок); ТабДок.Вывести(ОбластьШапкаТаблицы); ВыборкаДетали = Результат.Выбрать(); Пока ВыборкаДетали.Следующий() Цикл ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетали); ОбластьДетальныхЗаписей.Область("Описание").Примечание.Текст = ВыборкаДетали.СодержаниеСобытия; ТабДок.Вывести(ОбластьДетальныхЗаписей); КонецЦикла; ТабДок.Показать(); КонецПроцедуры |