Добрый день и Слава Украине! Задача - получить в запросе сумму документа в выбранной валюте по курсу на дату документа. Регистр сведений КурсыВалют, периодичность в пределах дня, независимый.
Валюта = Справочники.Валюты.НайтиПоНаименованию("usd",Истина);
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЗаказПокупателя.СуммаДокумента,
| ЗаказПокупателя.Дата КАК Дата1,
| ЗаказПокупателя.Ссылка,
| НАЧАЛОПЕРИОДА(ЗаказПокупателя.Дата, ДЕНЬ) КАК ДАТА,
| ЗаказПокупателя.СуммаДокумента / (КурсыВалютСрезПервых.Курс / КурсыВалютСрезПервых.Кратность) КАК ВВалюте
|ИЗ
| РегистрСведений.КурсыВалют.СрезПервых(, Валюта = &Валюта) КАК КурсыВалютСрезПервых
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя КАК ЗаказПокупателя
| ПО (НАЧАЛОПЕРИОДА(ЗаказПокупателя.Дата, ДЕНЬ) = КурсыВалютСрезПервых.Период)
|ГДЕ
| ЗаказПокупателя.Дата МЕЖДУ &НачПериода И &КонПериода";
Запрос.УстановитьПараметр("КонПериода", КонПериода);
Запрос.УстановитьПараметр("НачПериода", НачПериода);
Запрос.УстановитьПараметр("Валюта", Валюта);
РезультатЗапроса = Запрос.Выполнить().Выгрузить().ВыбратьСтроку();
Героям слава!
Посмотрите https://pro1c.org.ua/index.php?showtopic=6419.
Vofka @ Сегодня, 9:01
,
Спасибо, инфа интересная и нужная. Но есть одно но. Я с начала решил упростить задачу, чтобы было понятнее, чего я хочу, но видимо не получится. Есть отчет на базе универсального отчета с таким листингом запроса в начальных настройках. Внимание большой запрос...
ЗапросТекстЗапроса =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ПродажиОбороты.ДокументПродажи.Ответственный КАК Ответственный,
| ПродажиОбороты.Подразделение КАК Подразделение,
| ПродажиОбороты.Контрагент КАК Контрагент,
| ПродажиОбороты.ЗаказПокупателя КАК ЗаказПокупателя,
| ПродажиОбороты.Номенклатура КАК Номенклатура,
| ПРЕДСТАВЛЕНИЕ(ПродажиОбороты.ЗаказПокупателя.Ответственный) КАК ОтветственныйПредставление,
| ПРЕДСТАВЛЕНИЕ(ПродажиОбороты.Подразделение),
| ПРЕДСТАВЛЕНИЕ(ПродажиОбороты.Контрагент),
| ПРЕДСТАВЛЕНИЕ(ПродажиОбороты.ЗаказПокупателя),
| ПРЕДСТАВЛЕНИЕ(ПродажиОбороты.Номенклатура),
| ПродажиОбороты.КоличествоОборот * ЕСТЬNULL(ПродажиОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент, 1) / ЕСТЬNULL(ПродажиОбороты.Номенклатура.ЕдиницаДляОтчетов.Коэффициент, 1) КАК КоличествоЕдиницОтчетовОборот,
| ПродажиОбороты.СтоимостьОборот / ВЫБОР
| КОГДА КурсыВалютСрезПоследних.Кратность = 0
| ТОГДА 1
| ИНАЧЕ КурсыВалютСрезПоследних.Курс / КурсыВалютСрезПоследних.Кратность
| КОНЕЦ КАК СтоимостьОборот,
| ЕСТЬNULL(ТаблицаРегистраПродажиСебестоимость.СтоимостьОборот / ВЫБОР
| КОГДА КурсыВалютСрезПоследних.Кратность = 0
| ТОГДА 1
| ИНАЧЕ КурсыВалютСрезПоследних.Курс / КурсыВалютСрезПоследних.Кратность
| КОНЕЦ, 0) КАК Себестоимость0,
| ПродажиОбороты.КоличествоОборот * (ЦеныНоменклатуры1.Цена / ЦеныНоменклатуры1.ЕдиницаИзмерения.Коэффициент) * ПродажиОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент * (КурсыВалют1.Курс / КурсыВалют1.Кратность) / (УпрВалюты.Курс / УпрВалюты.Кратность) * &КоэффициентБазовогоТипаЦен1 / ВЫБОР
| КОГДА КурсыВалютСрезПоследних.Кратность = 0
| ТОГДА 1
| ИНАЧЕ КурсыВалютСрезПоследних.Курс / КурсыВалютСрезПоследних.Кратность
| КОНЕЦ КАК Себестоимость1,
| ПродажиОбороты.КоличествоОборот * (ЦеныНоменклатуры2.Цена / ЦеныНоменклатуры2.ЕдиницаИзмерения.Коэффициент) * ПродажиОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент * (КурсыВалют2.Курс / КурсыВалют2.Кратность) / (УпрВалюты.Курс / УпрВалюты.Кратность) * &КоэффициентБазовогоТипаЦен2 / ВЫБОР
| КОГДА КурсыВалютСрезПоследних.Кратность = 0
| ТОГДА 1
| ИНАЧЕ КурсыВалютСрезПоследних.Курс / КурсыВалютСрезПоследних.Кратность
| КОНЕЦ КАК Себестоимость2,
| ВЫБОР
| КОГДА &ПоТипамЦен
| ТОГДА ВЫБОР
| КОГДА ЕСТЬNULL(ЦеныНоменклатуры1.Цена, 0) > 0
| ТОГДА ПродажиОбороты.КоличествоОборот * (ЦеныНоменклатуры1.Цена / ЦеныНоменклатуры1.ЕдиницаИзмерения.Коэффициент) * ПродажиОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент * (КурсыВалют1.Курс / КурсыВалют1.Кратность) / (УпрВалюты.Курс / УпрВалюты.Кратность) * &КоэффициентБазовогоТипаЦен1 / ВЫБОР
| КОГДА КурсыВалютСрезПоследних.Кратность = 0
| ТОГДА 1
| ИНАЧЕ КурсыВалютСрезПоследних.Курс / КурсыВалютСрезПоследних.Кратность
| КОНЕЦ
| ИНАЧЕ ПродажиОбороты.КоличествоОборот * (ЦеныНоменклатуры2.Цена / ЦеныНоменклатуры2.ЕдиницаИзмерения.Коэффициент) * ПродажиОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент * (КурсыВалют2.Курс / КурсыВалют2.Кратность) / (УпрВалюты.Курс / УпрВалюты.Кратность) * &КоэффициентБазовогоТипаЦен2 / ВЫБОР
| КОГДА КурсыВалютСрезПоследних.Кратность = 0
| ТОГДА 1
| ИНАЧЕ КурсыВалютСрезПоследних.Курс / КурсыВалютСрезПоследних.Кратность
| КОНЕЦ
| КОНЕЦ
| ИНАЧЕ ЕСТЬNULL(ТаблицаРегистраПродажиСебестоимость.СтоимостьОборот / ВЫБОР
| КОГДА КурсыВалютСрезПоследних.Кратность = 0
| ТОГДА 1
| ИНАЧЕ КурсыВалютСрезПоследних.Курс / КурсыВалютСрезПоследних.Кратность
| КОНЕЦ, 0)
| КОНЕЦ КАК Себестоимость,
| ЕСТЬNULL(ТЗРОбороты.СуммаОборот / ВЫБОР
| КОГДА КурсыВалютСрезПоследних.Кратность = 0
| ТОГДА 1
| ИНАЧЕ КурсыВалютСрезПоследних.Курс / КурсыВалютСрезПоследних.Кратность
| КОНЕЦ, 0) КАК СуммаТЗР,
| ЕСТЬNULL(БонусыОбороты.СуммаОборот / ВЫБОР
| КОГДА КурсыВалютСрезПоследних.Кратность = 0
| ТОГДА 1
| ИНАЧЕ КурсыВалютСрезПоследних.Курс / КурсыВалютСрезПоследних.Кратность
| КОНЕЦ, 0) КАК СуммаБонусов,
| ВЫБОР
| КОГДА &ПоТипамЦен
| ТОГДА ВЫБОР
| КОГДА ЕСТЬNULL(ЦеныНоменклатуры1.Цена, 0) > 0
| ТОГДА (ПродажиОбороты.СтоимостьОборот - ЕСТЬNULL(ТЗРОбороты.СуммаОборот, 0) - ЕСТЬNULL(БонусыОбороты.СуммаОборот, 0) - ПродажиОбороты.КоличествоОборот * (ЦеныНоменклатуры1.Цена / ЦеныНоменклатуры1.ЕдиницаИзмерения.Коэффициент) * ПродажиОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент * (КурсыВалют1.Курс / КурсыВалют1.Кратность) / (УпрВалюты.Курс / УпрВалюты.Кратность) * &КоэффициентБазовогоТипаЦен1) / ВЫБОР
| КОГДА КурсыВалютСрезПоследних.Кратность = 0
| ТОГДА 1
| ИНАЧЕ КурсыВалютСрезПоследних.Курс / КурсыВалютСрезПоследних.Кратность
| КОНЕЦ
| ИНАЧЕ (ПродажиОбороты.СтоимостьОборот - ЕСТЬNULL(ТЗРОбороты.СуммаОборот, 0) - ЕСТЬNULL(БонусыОбороты.СуммаОборот, 0) - ПродажиОбороты.КоличествоОборот * (ЦеныНоменклатуры2.Цена / ЦеныНоменклатуры2.ЕдиницаИзмерения.Коэффициент) * ПродажиОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент * (КурсыВалют2.Курс / КурсыВалют2.Кратность) / (УпрВалюты.Курс / УпрВалюты.Кратность) * &КоэффициентБазовогоТипаЦен2) / ВЫБОР
| КОГДА КурсыВалютСрезПоследних.Кратность = 0
| ТОГДА 1
| ИНАЧЕ КурсыВалютСрезПоследних.Курс / КурсыВалютСрезПоследних.Кратность
| КОНЕЦ
| КОНЕЦ
| ИНАЧЕ (ПродажиОбороты.СтоимостьОборот - ЕСТЬNULL(ТЗРОбороты.СуммаОборот, 0) - ЕСТЬNULL(БонусыОбороты.СуммаОборот, 0) - ЕСТЬNULL(ТаблицаРегистраПродажиСебестоимость.СтоимостьОборот, 0)) / ВЫБОР
| КОГДА КурсыВалютСрезПоследних.Кратность = 0
| ТОГДА 1
| ИНАЧЕ КурсыВалютСрезПоследних.Курс / КурсыВалютСрезПоследних.Кратность
| КОНЕЦ
| КОНЕЦ КАК ВаловаяПрибыль,
| ВЫБОР
| КОГДА ПродажиОбороты.СтоимостьОборот = 0
| ТОГДА 0
| ИНАЧЕ 100 * ВЫБОР
| КОГДА &ПоТипамЦен
| ТОГДА ВЫБОР
| КОГДА ЕСТЬNULL(ЦеныНоменклатуры1.Цена, 0) > 0
| ТОГДА ПродажиОбороты.СтоимостьОборот - ЕСТЬNULL(ТЗРОбороты.СуммаОборот, 0) - ЕСТЬNULL(БонусыОбороты.СуммаОборот, 0) - ПродажиОбороты.КоличествоОборот * (ЦеныНоменклатуры1.Цена / ЦеныНоменклатуры1.ЕдиницаИзмерения.Коэффициент) * ПродажиОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент * (КурсыВалют1.Курс / КурсыВалют1.Кратность) / (УпрВалюты.Курс / УпрВалюты.Кратность) * &КоэффициентБазовогоТипаЦен1
| ИНАЧЕ ПродажиОбороты.СтоимостьОборот - ЕСТЬNULL(ТЗРОбороты.СуммаОборот, 0) - ЕСТЬNULL(БонусыОбороты.СуммаОборот, 0) - ПродажиОбороты.КоличествоОборот * (ЦеныНоменклатуры2.Цена / ЦеныНоменклатуры2.ЕдиницаИзмерения.Коэффициент) * ПродажиОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент * (КурсыВалют2.Курс / КурсыВалют2.Кратность) / (УпрВалюты.Курс / УпрВалюты.Кратность) * &КоэффициентБазовогоТипаЦен2
| КОНЕЦ
| ИНАЧЕ ПродажиОбороты.СтоимостьОборот - ЕСТЬNULL(ТЗРОбороты.СуммаОборот, 0) - ЕСТЬNULL(БонусыОбороты.СуммаОборот, 0) - ЕСТЬNULL(ТаблицаРегистраПродажиСебестоимость.СтоимостьОборот, 0)
| КОНЕЦ / ПродажиОбороты.СтоимостьОборот
| КОНЕЦ КАК Рентабельность,
| ПродажиОбороты.Регистратор,
| ПродажиОбороты.Период,
| НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, ДЕНЬ) КАК ПериодДень,
| НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, НЕДЕЛЯ) КАК ПериодНеделя,
| НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, ДЕКАДА) КАК ПериодДекада,
| НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, МЕСЯЦ) КАК ПериодМесяц,
| НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, КВАРТАЛ) КАК ПериодКвартал,
| НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, ПОЛУГОДИЕ) КАК ПериодПолугодие,
| НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, ГОД) КАК ПериодГод,
| ВЫБОР
| КОГДА КурсыВалютСрезПоследних.Кратность = 0
| ТОГДА 1
| ИНАЧЕ КурсыВалютСрезПоследних.Курс / КурсыВалютСрезПоследних.Кратность
| КОНЕЦ КАК КурсРегистратора
|{ВЫБРАТЬ
| Ответственный.*,
| Подразделение.*,
| Контрагент.*,
| ЗаказПокупателя.*,
| Номенклатура.*,
| КоличествоЕдиницОтчетовОборот,
| СтоимостьОборот,
| Себестоимость0,
| Себестоимость1,
| Себестоимость2,
| Себестоимость,
| СуммаТЗР,
| СуммаБонусов,
| ВаловаяПрибыль,
| Рентабельность,
| Регистратор,
| Период,
| ПериодДень,
| ПериодНеделя,
| ПериодДекада,
| ПериодМесяц,
| ПериодКвартал,
| ПериодПолугодие,
| ПериодГод}
|ИЗ
| РегистрСведений.КурсыВалют.СрезПоследних(&ДатаКон, Валюта = &ВалютаУпрУчета) КАК УпрВалюты,
| РегистрНакопления.Продажи.Обороты(&ДатаНач, &ДатаКон, Регистратор, {(Подразделение).* КАК Подразделение, (Контрагент).* КАК Контрагент, (ЗаказПокупателя).* КАК ЗаказПокупателя, (Номенклатура).* КАК Номенклатура}) КАК ПродажиОбороты
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
| &ДатаКон,
| ТипЦен = &БазовыйТипЦен1
| И ХарактеристикаНоменклатуры = ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка) {(Номенклатура).* КАК Номенклатура}) КАК ЦеныНоменклатуры1
| ПО ПродажиОбороты.Номенклатура = ЦеныНоменклатуры1.Номенклатура
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
| &ДатаКон,
| ТипЦен = &БазовыйТипЦен2
| И ХарактеристикаНоменклатуры = ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка) {(Номенклатура).* КАК Номенклатура}) КАК ЦеныНоменклатуры2
| ПО ПродажиОбороты.Номенклатура = ЦеныНоменклатуры2.Номенклатура
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних(&ДатаКон, ) КАК КурсыВалют2
| ПО (ЦеныНоменклатуры2.Валюта = КурсыВалют2.Валюта)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних(&ДатаКон, ) КАК КурсыВалют1
| ПО (ЦеныНоменклатуры1.Валюта = КурсыВалют1.Валюта)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТЗР.Обороты(&ДатаНач, &ДатаКон, , {(Подразделение).* КАК Подразделение, (ЗаказПокупателя).* КАК ЗаказПокупателя, (Номенклатура).* КАК Номенклатура}) КАК ТЗРОбороты
| ПО ПродажиОбороты.ЗаказПокупателя = ТЗРОбороты.ЗаказПокупателя
| И ПродажиОбороты.Номенклатура = ТЗРОбороты.Номенклатура
| И ПродажиОбороты.Регистратор = ТЗРОбороты.ДокументДвижения
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Бонусы.Обороты(&ДатаНач, &ДатаКон, , {(Подразделение).* КАК Подразделение, (ЗаказПокупателя).* КАК ЗаказПокупателя, (Номенклатура).* КАК Номенклатура}) КАК БонусыОбороты
| ПО ПродажиОбороты.ЗаказПокупателя = БонусыОбороты.ЗаказПокупателя
| И ПродажиОбороты.Номенклатура = БонусыОбороты.Номенклатура
| И ПродажиОбороты.Регистратор = БонусыОбороты.ДокументДвижения
| ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| ПродажиСебестоимость.Номенклатура КАК Номенклатура,
| ПродажиСебестоимость.ЗаказПокупателя КАК ЗаказПокупателя,
| ВЫБОР
| КОГДА ПродажиСебестоимость.ДокументДвижения <> НЕОПРЕДЕЛЕНО
| ТОГДА ПродажиСебестоимость.ДокументДвижения
| ИНАЧЕ ПродажиСебестоимость.Регистратор
| КОНЕЦ КАК Регистратор,
| СУММА(ПродажиСебестоимость.Стоимость) КАК СтоимостьОборот
| ИЗ
| РегистрНакопления.ПродажиСебестоимость КАК ПродажиСебестоимость
| ГДЕ
| ПродажиСебестоимость.Период МЕЖДУ &ДатаНачала И &ДатаКонца
| {ГДЕ
| ПродажиСебестоимость.Подразделение.* КАК Подразделение,
| ПродажиСебестоимость.Номенклатура.* КАК Номенклатура,
| ПродажиСебестоимость.ЗаказПокупателя.* КАК ЗаказПокупателя}
|
| СГРУППИРОВАТЬ ПО
| ПродажиСебестоимость.Номенклатура,
| ПродажиСебестоимость.ЗаказПокупателя,
| ВЫБОР
| КОГДА ПродажиСебестоимость.ДокументДвижения <> НЕОПРЕДЕЛЕНО
| ТОГДА ПродажиСебестоимость.ДокументДвижения
| ИНАЧЕ ПродажиСебестоимость.Регистратор
| КОНЕЦ) КАК ТаблицаРегистраПродажиСебестоимость
| ПО (ТаблицаРегистраПродажиСебестоимость.Номенклатура = ПродажиОбороты.Номенклатура)
| И (ТаблицаРегистраПродажиСебестоимость.ЗаказПокупателя = ПродажиОбороты.ЗаказПокупателя)
| И (ТаблицаРегистраПродажиСебестоимость.Регистратор = ПродажиОбороты.Регистратор)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних(, Валюта = &ВалютаОтображения) КАК КурсыВалютСрезПоследних
| ПО (НАЧАЛОПЕРИОДА(ПродажиОбороты.Регистратор.Дата, ДЕНЬ) = НАЧАЛОПЕРИОДА(КурсыВалютСрезПоследних.Период, ДЕНЬ))
|{ГДЕ
| ПродажиОбороты.ДокументПродажи.Ответственный.* КАК Ответственный,
| ПродажиОбороты.Подразделение.* КАК Подразделение,
| ПродажиОбороты.Контрагент.* КАК Контрагент,
| ПродажиОбороты.ЗаказПокупателя.* КАК ЗаказПокупателя,
| ПродажиОбороты.Номенклатура.* КАК Номенклатура,
| ПродажиОбороты.Регистратор КАК Регистратор,
| ПродажиОбороты.Период КАК Период,
| (НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, ДЕНЬ)) КАК ПериодДень,
| (НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, НЕДЕЛЯ)) КАК ПериодНеделя,
| (НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, ДЕКАДА)) КАК ПериодДекада,
| (НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, МЕСЯЦ)) КАК ПериодМесяц,
| (НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, КВАРТАЛ)) КАК ПериодКвартал,
| (НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, ПОЛУГОДИЕ)) КАК ПериодПолугодие,
| (НАЧАЛОПЕРИОДА(ПродажиОбороты.Период, ГОД)) КАК ПериодГод}
|{УПОРЯДОЧИТЬ ПО
| Ответственный.*,
| Подразделение.*,
| Контрагент.*,
| ЗаказПокупателя.*,
| Номенклатура.*,
| СтоимостьОборот,
| СуммаТЗР,
| СуммаБонусов,
| ВаловаяПрибыль,
| Рентабельность,
| Регистратор,
| Период,
| ПериодДень,
| ПериодНеделя,
| ПериодДекада,
| ПериодМесяц,
| ПериодКвартал,
| ПериодПолугодие,
| ПериодГод}
|ИТОГИ
| СУММА(КоличествоЕдиницОтчетовОборот),
| СУММА(СтоимостьОборот),
| СУММА(Себестоимость0),
| СУММА(Себестоимость1),
| СУММА(Себестоимость2),
| СУММА(Себестоимость),
| СУММА(СуммаТЗР),
| СУММА(СуммаБонусов),
| СУММА(ВаловаяПрибыль),
| ВЫБОР
| КОГДА СУММА(СтоимостьОборот) = 0
| ТОГДА 0
| ИНАЧЕ 100 * СУММА(ВаловаяПрибыль) / СУММА(СтоимостьОборот)
| КОНЕЦ КАК Рентабельность
|ПО
| ОБЩИЕ
|{ИТОГИ ПО
| Ответственный.*,
| Подразделение.*,
| Контрагент.*,
| ЗаказПокупателя.*,
| Номенклатура.*,
| Регистратор,
| Период,
| ПериодДень,
| ПериодНеделя,
| ПериодДекада,
| ПериодМесяц,
| ПериодКвартал,
| ПериодПолугодие,
| ПериодГод}
|АВТОУПОРЯДОЧИВАНИЕ";
Есть вариант обойтись без временных таблиц? Задача, показывать все сумовые значения в выбранной валюте. Сначала в ТЗ было считать сумовые значений по средневзвешенному курсу за период. Тут как бы все понятно. А вот на дату документа регистратора ПродажиОбороты, это уже жестко. Сейчас запрос с левым соединением курса валют не работает...
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua