arefaste/1C_Forums huggingface dataset:
Доброго времени суток. Подскажите пожалуйста, не понимаю как решить.
У меня есть регистр сведений курсов валют. 3 курса:
1) 01.01.2015 – Тугрик – 20.00
2) 03.01.2019 – Тугрик – 30.00
3) 12.02.2019 – Тугрик - 35.00
И оборотный регистр продаж.
Мне нужно получить за период продажи по дням с указанием: даты продажи, суммы продажи в рублях, суммы продажи в валюте. Нужно создать срез по курсам валют вручную, не использую СрезПоследних.
Пишу запрос:

```1c
    ВЫБРАТЬ
    КурсыВалют.Период КАК ДатаКурса,
    КурсыВалют.Валюта КАК Валюта,
    КурсыВалют.Курс КАК Курс,
    ПродажиОбороты.Период КАК ДатаПродажи,
    ПродажиОбороты.ВыручкаОборот КАК ВыручкаОборот
    ИЗ
    РегистрСведений.КурсыВалют КАК КурсыВалют,
    РегистрНакопления.Продажи.Обороты(&НачальнаяДата, &КонечнаяДата, День, ) КАК ПродажиОбороты
    ГДЕ
    КурсыВалют.Валюта = &Валюта
    И КурсыВалют.Период <= ПродажиОбороты.Период
    СГРУППИРОВАТЬ ПО
    КурсыВалют.Период,
    КурсыВалют.Валюта,
    КурсыВалют.Курс,
    ПродажиОбороты.Период,
    ПродажиОбороты.ВыручкаОборот
```

Первая строка получается лишняя. Мне нужно добавить условие, которое бы отсекало эту строку, то есть нужно получить последнюю ближайшую дату курса к дате продажи.

Необходимо решить одним набором данных.
---
Вам нужно выбрать во временную таблицу все пары валюта-дата курса-дата продажи, где дата курса меньше даты продажи и сгруппировать эту таблицу по номенклатуре и дате продажи выбрав максимум даты курса. "...Максимум(Дата курса) ... Сгруппировать По Номенклатура, Дата продажи". Далее вы соединяете таблицу продаж с этой временной таблицей по номенклатуре и дате продажи и далее по дате курса соединяетесь с таблицей курсов валют. Это базовый подход, который далее расширяется отборами, индексами и прочим.
---
Декартово произведение таблиц не даст нужного результата.

Решение задачи в общем виде выглядит так:

```1c
    Выбрать
    Т1.Период,
    Т1.Выручка,
    Т1.Валюта,
    Т2.Курс,
    Максимум(Т2.Период) КАК ПериодКурса
    ПОМЕСТИТЬ ВТКурсыВалютСрезПоследних
    ИЗ
    Таблица1 КАК Т1
    Левое Соединение Таблица2 КАК Т2
    По Т1.Период => Т2.Период
    Т1.Валюта = Т2.Валюта
    СГРУППИРОВАТЬ ПО
    Т1.Период,
    Т1.Выручка,
    Т2.Валюта,
    ;
    Выбрать
    Т1.Период,
    Т1.Выручка,
    Т1.Валюта
    Т2.Курс
    ИЗ
    ВТКурсыВалютСрезПоследних КАК Т1
    Левое соединение Таблица2 КАК Т2
    ПО Т1.ПериодКурса = Т2.Период
    И Т1.Валюта = Т2.Валюта
```
---
Вам нужно выбрать во временную таблицу все пары валюта-дата курса-дата продажи, где дата курса меньше даты продажи и сгруппировать эту таблицу по номенклатуре и дате продажи выбрав максимум даты курса. "...Максимум(Дата курса) ... Сгруппировать По Номенклатура, Дата продажи". Далее вы соединяете таблицу продаж с этой временной таблицей по номенклатуре и дате продажи и далее по дате курса соединяетесь с таблицей курсов валют. Это базовый подход, который далее расширяется отборами, индексами и прочим.
Добрый день !
ЗУП 3

Существует ли функция, по которой можно получить у кандидата получить Физ.лицо
Либо подскажи как можно получить
---
всем спасибо =))) сейчас появился регистр ФизическиеЛицаКандидатов =)
---
всем спасибо =))) сейчас появился регистр ФизическиеЛицаКандидатов =)
Есть общая форма, в ней динамический список. динамический список собирается через несколько разных документов через Объединить. Как сделать так чтобы при нажатии на элемент из списка открывалась форма этого документа?
---
В событие Выбор для ДС прописать примерно так:

```1c
    ТекущиеДанные = Элементы.МойДС.ТекущиеДанные;
    Если ТекущиеДанные<> Неопределено Тогда
    ПоказатьЗначение(,ТекущиеДанные.Ссылка);
    КонецЕсли;
```
---
"В событие Выбор для ДС"
---
В событие Выбор для ДС прописать примерно так:

```1c
    ТекущиеДанные = Элементы.МойДС.ТекущиеДанные;
    Если ТекущиеДанные<> Неопределено Тогда
    ПоказатьЗначение(,ТекущиеДанные.Ссылка);
    КонецЕсли;
```
---
В какую процедуру вставить?
---
В процедуру обработчик событие Выбор
---
"В событие Выбор для ДС"
---
Запятую забыли ПоказатьЗначение(,ТекущиеДанные.Ссылка)
---
Спасибо, поправил)
---
Спасибо
---
В свойстве "ОсновнаяТаблица" этого списка указать нужный документ. В этом случае и при создании и при открытии документа из списка будет создаваться/открываться именно этот документ.
---
у меня указана и так же было без изменений. Помогло только это - в событие Выбор для ДС прописать: ТекущиеДанные = Элементы.МойДС.ТекущиеДанные;
Если ТекущиеДанные<> Неопределено Тогда
ПоказатьЗначение(,ТекущиеДанные.Ссылка);
КонецЕсли;
Подскажите, пожалуйста, как сделать так, чтобы если в отчёте не выбрано время, то отчёт формировался за весь период. Если не создавать основную форму то всё так и работает, но мне нужно было создать форму и теперь при невыбранном времени вылезает ошибка
---
{ГДЕ
(ЗаказНаряд.Дата <= &КонецПериода),
(ЗаказНаряд.Дата >= &НачалоПериода)}

Условие в фигурных скобках будет выполняться только если задан параметр, использующийся в этом условии.
---
Условие на конец периода в запросе в фигурные скобки оберните.
---
Можете, пожалуйста, показать как именно условие обернуть в скобки, я что то пробую но не получается. Недавно начал заниматься 1с
---
Вот так в запросе выглядит условие
И ЗаказНаряд.Дата <= &КонецПериода
И ЗаказНаряд.Дата >= &НачалоПериода

В парметрах для "КонецПериода" задано такое выражение КонецПериода(&КонецПериода, "День")
---
{ГДЕ
(ЗаказНаряд.Дата <= &КонецПериода),
(ЗаказНаряд.Дата >= &НачалоПериода)}

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

Функция ПреобразоватьМассивВТаблицуЗначений(мсДанные) Экспорт

тзДанные = Новый ТаблицаЗначений;

Для Каждого ЭлементМассива Из мсДанные Цикл
// Рисуем колонки для таблицы

Если тзДанные.Колонки.Количество() = 0 Тогда
Для Каждого ЗначениеСтруктуры Из ЭлементМассива Цикл
тзДанные.Колонки.Добавить(ЗначениеСтруктуры.Ключ);
КонецЦикла;
КонецЕсли;

// Добавляем данные в таблицу

НоваяСтрока = тзДанные.Добавить();
Для Каждого ЗначениеСтруктуры Из ЭлементМассива Цикл
НоваяСтрока[ЗначениеСтруктуры.Ключ] = ЗначениеСтруктуры.Значение;
КонецЦикла;
КонецЦикла;

Возврат тзДанные;

КонецФункции
---
А может лучше их отсортировать в изначальной таблицы, а потом через найтиСтроки они уже будут какие нужно?
---
тогда найтиСтроки сразу поместить в новую/копию таблицы
и ее сортирнуть одной командой!

т.е. всего 2 команды

НайденаяТЗ = тзДанные.Скопировать(мсДанные);
НайденаяТЗ.Сортировать(...);
---
А может лучше их отсортировать в изначальной таблицы, а потом через найтиСтроки они уже будут какие нужно?
---
Не будут. Найти строки не гарантирует порядок.
Но вместо использования НайтиСтроки можно сделать копию таблицы с отбором. И ее отсортировать.
---
действительно потом и сам допетрил, нафига в массив и потом сортировать когда можно сразу в массив, лишь бы порядок был нужный как описано ниже??!!??
---
Не наступайте на старые грабли – почитайте https://infostart.ru/1c/tools/117041/
---
тогда найтиСтроки сразу поместить в новую/копию таблицы
и ее сортирнуть одной командой!

т.е. всего 2 команды

НайденаяТЗ = тзДанные.Скопировать(мсДанные);
НайденаяТЗ.Сортировать(...);
Здравствуйте!

Помогите разобраться с типовой кнопкой печати в меню.
У меня есть код, который выполняется при нажатии на кнопку Печать (1 на скрине). Но если пользователь нажимает на другую кнопку Печать (2 на скрине), то обработчик событий для команды Печать не срабатывает.

Подскажите, можно ли перехватить событие для второй кнопки? Если нельзя, то как скрыть эту кнопку? В какой момент она формируется?

1с:erp управление предприятием 2.
---
Это команда платформы. Нельзя убрать
---
так это платформенное, не помню, чтобы была возможность с этой кнопкой взаимодействовать
---
Как я поняла, существуют две команды. Печать и Печать с текущими настройками. Как добавить обработчик события для команды Печать?
---
Это команда платформы. Нельзя убрать
Здравствуйте. Такая проблема. Реализую списание по ЛИФО.

В запросе партии выглядят в таком порядке ( рис. РезультатЗапроса )
Но используешь метод "Выбрать" и обходишь выборку с помощью метода ВыборкаДетали.Следующий(), обходить эту выборку он начинает в другом порядке ( с первой партии). (Рис.Отладчик)

Как мне сделать так чтобы он обходил так как я задал в запросе?
---
Решил проблему. У меня документ поступление был 24 и 26. А продажи ( на списание ) 24. И когда я проводил документ 24 числа у меня просто брал партию которая была последней на момент времени 24.
---
Текст запроса в студию.
---
```1c
    ВЫБРАТЬ
    ПродажаТоваровСписокТоваров.Номенклатура КАК Номенклатура,
    СУММА(ПродажаТоваровСписокТоваров.Количество) КАК Количество,
    СУММА(ПродажаТоваровСписокТоваров.Выручка) КАК Выручка
    ПОМЕСТИТЬ ДокТЧ
    ИЗ
    Документ.ПродажаТоваров.СписокТоваров КАК ПродажаТоваровСписокТоваров
    ГДЕ
    ПродажаТоваровСписокТоваров.Ссылка = &Ссылка

    СГРУППИРОВАТЬ ПО
    ПродажаТоваровСписокТоваров.Номенклатура

    ИНДЕКСИРОВАТЬ ПО
    Номенклатура
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ОстаткиТоваровОстатки.Номенклатура КАК Номенклатура,
    ОстаткиТоваровОстатки.КоличествоОстаток КАК КоличествоОстаток
    ИЗ
    РегистрНакопления.ОстаткиТоваров.Остатки(&МоментИтогов, ) КАК ОстаткиТоваровОстатки
    ГДЕ
    ОстаткиТоваровОстатки.КоличествоОстаток < 0
    ;

    ВЫБРАТЬ
    ДокТЧ.Номенклатура КАК Номенклатура,
    ДокТЧ.Количество КАК Количество,
    ДокТЧ.Выручка КАК Выручка,
    ПартииТоваровОстатки.Партия КАК Партия,
    ПартииТоваровОстатки.КоличествоОстаток КАК КоличествоОстаток,
    ПартииТоваровОстатки.СтоимостьОстаток КАК СтоимостьОстаток
    ИЗ
    ДокТЧ КАК ДокТЧ
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваров.Остатки(
    &МоментИтогов,
    Номенклатура В
    (ВЫБРАТЬ
    ДокТЧ.Номенклатура КАК Номенклатура
    ИЗ
    ДокТЧ КАК ДокТЧ)) КАК ПартииТоваровОстатки
    ПО ДокТЧ.Номенклатура = ПартииТоваровОстатки.Номенклатура

    УПОРЯДОЧИТЬ ПО
    ПартииТоваровОстатки.Партия.МоментВремени УБЫВ
    ИТОГИ
    МИНИМУМ(Количество),
    МИНИМУМ(Выручка)
    ПО
    Номенклатура
```
---
Решил проблему. У меня документ поступление был 24 и 26. А продажи ( на списание ) 24. И когда я проводил документ 24 числа у меня просто брал партию которая была последней на момент времени 24.
Добрый день! Пытаюсь вывести в отчет данные потконткретным действиям из бизнес процесса, однако не могу написать правильный отбор, постоянно жалуется. много вариантов констркций перепробовал уже. ЗадачаИсполнителяПредметы.Ссылка.ТочкаМаршрута = ЗНАЧЕНИЕ(БизнесПроцесс.КомплексныйПроцесс.ТочкаМаршрута.Действие5)
---
Победил, УРА!!!
ЗадачаИсполнителяПредметы.Ссылка.ТочкаМаршрута = ЗНАЧЕНИЕ(БизнесПроцесс.ИСполнение.ТочкаМаршрута.Исполнить)
---
У меня получалось только через параметры (.ТочкаМаршрута = &ТочкаМаршрута, Запрос.УстановитьПараметр("ТочкаМаршрута,....))
---
Победил, УРА!!!
ЗадачаИсполнителяПредметы.Ссылка.ТочкаМаршрута = ЗНАЧЕНИЕ(БизнесПроцесс.ИСполнение.ТочкаМаршрута.Исполнить)
---
У меня сработало теперь так
 Значение(БизнесПроцесс.РешениеВопросовВыполненияЗадач.Точки.РассмотрениеИнициатором)
Платформа
1С:Предприятие 8.3 (8.3.23.1865)
---
Спасибо. Работает
---
Есть возможность выбора определенного варианта точки маршрута "ВыборВарианта" бизнес процесса в запросе?
На встроенном языке будет так:

```1c
    Вариант = БизнесПроцессы.Задание.ТочкиМаршрута.ВыборВарианта.Варианты.Вариант;
```

Вопрос как это перевести в
```1c
    ЗНАЧЕНИЕ(...)
```
Нужно раскрасить ячейки макета входящие входящие в период, как в приложенном файле, а так же присоединить колонки этого периода более грамотно, а то у меня дублируется верхняя строка.

```1c
    ДатаКолонки = НачалоПериода;
    Секция = Макет.ПолучитьОбласть("Заголовок|Начало");
    ТабличныйДокумент.Вывести(Секция);

    ДатыПериодаЗ = Макет.ПолучитьОбласть("Заголовок|ДатыПериодаЗ");
    ДатыПериодаС = Макет.ПолучитьОбласть("Заголовок|ДатыПериодаС");
    ДатыПериодаТ = Макет.ПолучитьОбласть("Таблица|ДатыПериодаЗ");
    ДатаКолонки = НачалоПериода;

    Пока ДатаКолонки <= КонецПериода Цикл

    ДатыПериодаТ.Параметры.ДатаПериодаТ = Формат(ДатаКолонки, "ДФ=dd.MM.yy");
    ТабличныйДокумент.Присоединить(ДатыПериодаТ);

    ДатаКолонки = ДатаКолонки + 60*60*24;
    КонецЦикла;
```
---
Получил пересечение областей, которые заведомо были окрашены, а дальше по условию вставлял ячейки.
---
Как вариант:

```1c
    ДатыПериодаТ.Область(1, 1).ЦветФона = Новый Цвет(22, 44, 66);
```
---
После вывода области, можно её получить по номеру строки+столбца и задать цвет фона
---
Получил пересечение областей, которые заведомо были окрашены, а дальше по условию вставлял ячейки.
Здравствуйте.

Есть УНФ (3.0) с интегрированным ДО (2.1).

Как в конфигураторе УНФ, отследить выполнение команды "Создать" (внутреннего документа ДО) в УНФ?

Задача состоит в том, что необходимо добавить функционал, при нажатии на эту команду (добавить файл с локального компьютера в этот вновь создаваемый внутренний документ ДО).
---
зайти в обработку интеграции с ДО (кажется это именно в обработке) и найти команду или гиперссылку Создать
---
зайти в обработку интеграции с ДО (кажется это именно в обработке) и найти команду или гиперссылку Создать
Добавил документу доп.реквизит, тип - строка неограниченной длины.
В нем хранится строка примерно 10тыс. символов.
В форме ввел записал туда строку, смотрю а это значение хранится дважды в в строке табличной части доп.реквизиты, в реквизите значение и текстовоя строка.
Зачем дважды хранить?
---
Значение - 1024 символа, ТекстоваяСтрока - неограниченная длина.
---
Значение - 1024 символа, ТекстоваяСтрока - неограниченная длина.
---
полегчало, спасибо
Есть документ, при его проведении должны изменяться данные справочника. В каком обработчике лучше всего выполнять это изменение? После "Обработки проведения" или есть нюансы и лучше в модуле формы в обработчике "После записи"?
---
разделить события и изменять данные справочника отдельным регламентным заданием.
---
разделить события и изменять данные справочника отдельным регламентным заданием.
---
тоже думал так решить, но если всё-таки без регламентного задания?)
---
а без регламентного задания это будут костыли
---
При такой постановке только в процедуре обработки проведения, все остальные варианты не гарантируют 100% работы.
---
Менять из документа справочники? (где вас учили)
а теперь представьте перепровели эти же документы но месячной давности, что они запишут в ваш справочник?
---
toxic... но мысль правильная
---
Менять из документа справочники? (где вас учили)Даже интересно, где учат этого не делать. И на основе каких научных публикаций по которым написаны те учебники...
---
Так учат не делать из-за
1. необратимость операции
2. излишние блокировки

В 7.7 еще это началось, когда меняли периодические реквизиты. При распроведении документа система не вернулась в исходное состояние - экзамен не сдал.

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

```1c
    &НаКлиенте
    Процедура КомандаОткрытьФормуВыбора(Команда)

    //Вариант 1
    ПараметрыФормы = Новый Структура;
    ПараметрыФормы.Вставить("РежимВыбора",Истина);
    ПараметрыФормы.Вставить("МножественныйВыбор",Ложь);
    ПараметрыФормы.Вставить("ЗакрыватьПриВыборе",ложь);
    ПараметрыФормы.Вставить("ВыборГруппИЭлементов",ИспользованиеГруппИЭлементов.Группы);

    ОткрытьФорму("Справочник.Номенклатура.ФормаВыбора",ПараметрыФормы,ЭтаФорма);

    //Вариант 2
    Форм = ПолучитьФорму("Справочник.Номенклатура.ФормаВыбора");
    форм.Элементы.Список.ВыборГруппИЭлементов = ИспользованиеГруппИЭлементов.Группы;
    форм.Открыть();

    КонецПроцедуры
```
---
друг надо так ОткрытьФорму("Справочник.Номенклатура.Форма.ФормаВыбора",ПараметрыФормы,ЭтаФорма);
Доброго.
ОткрытьФорму ошибка при передачи параметров отбора.
вроде делаю все по учебнику.

ЗначениеОтбора = Новый Структура("Владелец", ЭтаФорма.ТекущийЭлемент.ТекущиеДанные.Номенклатура);
ПараметрыВыбора = Новый ФиксированнаяСтруктура("Отбор", ЗначениеОтбора);
ОткрытьФорму("Справочник.ДополнительныйАртикул.ФормаВыбора", ПараметрыВыбора)

Получаю ошибку.
Несоответствие типов (параметр номер '2')

В справке
ОткрытьФорму(<ИмяФормы>, <Параметры>, <Владелец>, <Уникальность>, <Окно>, <НавигационнаяСсылка>, <ОписаниеОповещенияОЗакрытии>, <РежимОткрытияОкна>)
<Параметры> (необязательный)
Тип: Структура.
Ну у меня ФиксированнаяСтруктура, как в учебнике.
Они что отличаются?
Где косяк?
---
Блин допер наконец.
ПараметрыВыбора зарезервированое слово.
Переименовал в ПараметрыВыбора1 все заработал, на ИТС ошибка, сволочи.
---
Структура и ФиксированнаяСтруктура это разные типы. В СП четко указано, что тип должен быть Структура, а не ФиксированнаяСтруктура.
---
ПараметрыВыбора должен быть ФиксированнаяСтруктура на просто Структура выдается ошибка. Это заколдованный круг какой-то.
---
где это указано?
Из Сп:

ОткрытьФорму(<ИмяФормы>, <Параметры>, <Владелец>, <Уникальность>, <Окно>, <НавигационнаяСсылка>, <ОписаниеОповещенияОЗакрытии>, <РежимОткрытияОкна>)

<Параметры> (необязательный)
Тип: Структура.
Параметры формы. Ключ структуры - имя параметра, а значение - значение параметра формы. Имя элемента должно совпадать с именем параметра структуры.
П = Новый Структура("Ключ", Поставщик);
Форма = ПолучитьФорму("Справочник.Контрагенты.ФормаОбъекта", П);
Форма.Открыть();
---
Здесь
Несоответствие типов
{Документ.Заказы.Форма.ФормаДокумента.Форма(33)}: ПараметрыВыбора = Новый Структура("Отбор", ЗначениеОтбора);

по причине:
Несоответствие типов
---
Блин допер наконец.
ПараметрыВыбора зарезервированое слово.
Переименовал в ПараметрыВыбора1 все заработал, на ИТС ошибка, сволочи.
---
Присоединяюсь, наступила на эти же грабли - убила ПОЛДНЯ и не доперла бы скорее всего... )) Если не обратила внимание на Ваше сообщение... Спасибо...
---
еновал в ПараметрыВыбора1 все заработал, на ИТС ошибка, сволочи
Спасибо!!! Добрый человек, даже не представляю сколько сейчас времени сэкономил.
Нужно получить остатки задолженности на конец каждого месяца в заданном периоде. Пытался через ПериодМесяц, но месяца без движений Приход/Расход пустые выходят. Как это можно реализовать?
Вот запрос:

```1c
    ВЫБРАТЬ РАЗРЕШЕННЫЕ
    РасчетыСПоставщиками.СуммаПриход КАК СуммаПриход,
    РасчетыСПоставщиками.СуммаРасход КАК СуммаРасход,
    РасчетыСПоставщиками.АналитикаУчетаПоПартнерам КАК АналитикаУчетаПоПартнерам,
    РасчетыСПоставщиками.АналитикаУчетаПоПартнерам.Партнер КАК Партнер,
    РасчетыСПоставщиками.СуммаНачальныйОстаток КАК КредиторкаНач,
    РасчетыСПоставщиками.СуммаКонечныйОстаток КАК КредиторкаКон,
    РасчетыСПоставщиками.Регистратор КАК Регистратор,
    РасчетыСПоставщиками.ПериодСекунда КАК ПериодСекунда,
    РасчетыСПоставщиками.ПериодМесяц КАК ПериодМесяц
    ИЗ
    РегистрНакопления.РасчетыСПоставщиками.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Авто, , ) КАК РасчетыСПоставщиками
    {ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.АналитикаУчетаПоПартнерам КАК РегистрАналитикаУчетаПоПартнерам
    ПО РасчетыСПоставщиками.АналитикаУчетаПоПартнерам = РегистрАналитикаУчетаПоПартнерам.КлючАналитики}
    ГДЕ
    РегистрАналитикаУчетаПоПартнерам.Партнер <> ЗНАЧЕНИЕ(Справочник.Партнеры.НашеПредприятие)
```
---
тут https://infostart.ru/public/518415/
---
тут https://infostart.ru/public/518415/
---
Благодарю
---
В группировке ПериодМесяц использовать дополнение периода
---
Если по регистрам бух учета, то можно попробовать так (остатки ос по НУ на начало каждого месяца, например за 9 месяцев - 10 значений) -я использовал для расчета налога на прибыль по обособленным подразделениям ( в данном примере Счет - это 01.01 и отбор по конкретному ОС):

использован Метод дополнения "Движения"

```1c
    ВЫБРАТЬ
    ХозрасчетныйОстаткиИОбороты.Период КАК Период,
    ХозрасчетныйОстаткиИОбороты.Счет КАК Счет,
    ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокДт КАК СуммаНачальныйОстатокДт,
    ХозрасчетныйОстаткиИОбороты.СуммаНУНачальныйОстатокДт КАК СуммаНУНачальныйОстатокДт
    ИЗ
    РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&Дата1, &Дата2, Месяц, Движения, Счет = &Счет, , ) КАК ХозрасчетныйОстаткиИОбороты
    ГДЕ
    ХозрасчетныйОстаткиИОбороты.Субконто1 = &Субконто1
```