arefaste/1C_Forums huggingface dataset:
Помогите пожалуйста, отчет показать в строке.
есть таблица Склад Товар (иерархич спр Номенклатура)

Надо
Склад1 Иерархия1 ТоварнаяГруппа1Иерархия1
Склад1 Иерархия1 ТоварнаяГруппа2Иерархия1
Склад1 Иерархия2 ТоварнаяГруппа1Иерархия2

и чтобы пользователь мог выбирать: выводить первый уровень иерархии или первый и второй
---
Что значит "иерархия не ставится"? Нужно чтобы иерархия деревом отображалось? Настройте в СКД группировку как нужно, а не в запросе. Или в чем конкретно результат не устраивает?
---
Непонятно ничего. Но что мешает пользователю самому выбрать нужные поля как надо, раз уж это СКД?
---
Если это конечно, то просто соединениями добавь иерархии к основным данным, а затем вычисляемое поле для конкатенации. А если количество уровней большое и неизвестное, то в СКД есть "скрытые никому не известные" функции, благодаря которым можно обращаться к предыдущей строке в группировке. Не помню, как называются, но они точно есть. Я ими пользовался года 2 назад...
---
Должно получиться вот так.
---
И что мешает пользователю в пользовательском режиме самому вытащить этих родителей через точку от номенклатуры в настройке схемы СКД?
---
тогда получается вот так...
просто детальные записи, Иерархия им не ставится.
В СКД у меня идет

```1c
    СГРУППИРОВАТЬ ПО
    ТоварыВРозницеОстаткиИОбороты.Склад,
    ТоварыВРозницеОстаткиИОбороты.Номенклатура
```
---
Что значит "иерархия не ставится"? Нужно чтобы иерархия деревом отображалось? Настройте в СКД группировку как нужно, а не в запросе. Или в чем конкретно результат не устраивает?
---
Спасибо, отличное решение!
---
вот мой отчет, одна из положительных версий, другую пока получить не могу, нет подключ к серверу.
---
Пред не смотрите
Здравствуйте!

При отмене проведения или изменения дата документа План продаж необходимо блокировать регистр и контролировать остатки. И я не могу понять как оптимальнее сделать блокировку таблицы. Мне на ум пока пришло два способа. Мой регистр похож на регистр накопления ЗаказыКлиентов из УТ 11.4, у него есть измерение ПланПродаж (документ план продаж) по идеи можно заблокировать таблицу по этому измерению. Подскажите пожалуйста какой вариант более оптимальнее?
Первый способ:

```1c
    Блокировка = Новый БлокировкаДанных();
    ЭлементБлокировки = Блокировка.Добавить("РегистрНакопления.м_ПланыПродаж");
    ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
    ЭлементБлокировки.УстановитьЗначение("ПланПродаж", Ссылка);
    Блокировка.Заблокировать();
```

Второй способ:

```1c
    Движения.м_ПланыПродаж.БлокироватьДляИзменения = Истина;
    Движения.м_ПланыПродаж.Записать(); // Вроде как должно блокировать по старым данным

    // Заполняем набор данными из документа.

    Движения.м_ПланыПродаж.БлокироватьДляИзменения = Истина;
    Движения.м_ПланыПродаж.Записать(); // Блокировка по новым данным
```
---
Здравствуйте !

Нужно делать

Блокировка = Новый БлокировкаДанных();
ЭлементБлокировки = Блокировка.Добавить("РегистрНакопления.м_ПланыПродаж");
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
ЭлементБлокировки.УстановитьЗначение("ПланПродаж", Ссылка);
Блокировка.Заблокировать();

второй вариант делает другое.

Обратите внимание, что блокировка
1. должна быть в транзакции (например, при записи)
2. даже исключительная блокировка не запрещает читать, а только запрещает накладывать другую блокировку по тому же измерению.
---
В У 11.4 проследите как выполняется проведение, тут даже статья была.
хотя, если есть желание ходить по граблям, то это похвально.
---
Здравствуйте !

Нужно делать

Блокировка = Новый БлокировкаДанных();
ЭлементБлокировки = Блокировка.Добавить("РегистрНакопления.м_ПланыПродаж");
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
ЭлементБлокировки.УстановитьЗначение("ПланПродаж", Ссылка);
Блокировка.Заблокировать();

второй вариант делает другое.

Обратите внимание, что блокировка
1. должна быть в транзакции (например, при записи)
2. даже исключительная блокировка не запрещает читать, а только запрещает накладывать другую блокировку по тому же измерению.
Подскажите пожалуйста есть ли в типовом документе УТ "Установка цен номенклатуры" возможность поднять цену для всех позиций в таблице не на процент, а на определенную сумму? Как это сделать?
---
Выгрузить в Excel - Поменять как нужно - Загрузить обратно.
---
Выгрузить в Excel - Поменять как нужно - Загрузить обратно.
---
Уже так и делаю, но думал что возможно есть альтернативный метод.
При формирование PFD файла стали выводиться кракозабры. Где-то можно поменять в 1С кодировку файла или шрифты, думаю что скорей всего проблема именно в этом?
---
Все макеты печатных форм при сохранении такой эффект дают?
Можно на самом макете проверить какой шрифт используется.
ЗЫ но может оказаться что конфликт в самом шрифте, что то связанное с юникодорм.
---
Все макеты печатных форм при сохранении такой эффект дают?
Можно на самом макете проверить какой шрифт используется.
ЗЫ но может оказаться что конфликт в самом шрифте, что то связанное с юникодорм.
---
Да, все. Делаем массовую рассылку с pdf файлы и такие иероглифы, ну я думаю что это проблема связана со сменой ОС на машине с которой запущена обработка.
---
Да всё решилось, из-за того что раньше была Win7 всё гуд работало, сейчас десятка и вот.
---
уточните, как решилось?
---
Получается всё зависит от того на какой ОС запущено приложение.
 1С запускалась на Windows 7, и все сообщения были нормальные, после установки новой ОС Windows 10 начались крокозябкры.
Как я понял, это либо из-а шрифтов в системе, либо из кодировки.
---
я думал, что раз Да всё решилось то есть уже способ исправления
---
К соображению известна только причина.
---
Добрый день. Была такая же проблема. Решилась, PDF документы сделаны в 1с под WinXP или Win8/1. В 10 если открываешь через встроенный Edge открываются кракозябрами. Поставил бесплатный Adobe для PDF, он открыл нормальный текст, FoxitReader то же отлично открывает
как переписать запрос оптимально?

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

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

НачалоДня(Дата) = НачалоДня(СтрокаТЗ.ДатаРН) возвращает Истина.

НачалоДня(СтрокаТЗ.ДатаПеремещения) = Истина возвращает Ложь.

НачалоДня(ТекущаяДата()) = Ложь возвращает Ложь.
---
Вот это я дааааал! Как я на эти грабли не наступил раньше - не знаю. Всем огромнейшее спасибо.
Доброго всем времени суток!
В форме документа "Заказ клиента" есть команды создать на основание, а сам код исполнения данных команда найти не могу. Знающие люде не подскажете где копать?
---
В модуле объекта
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, ТекстЗаполнения, СтандартнаяОбработка)
 // Вставить содержимое обработчика.
КонецПроцедуры
---
В модуле объекта
---
Неее там 100% нету
---
А внимательнее
---
сорри, я думал в модуле того объекта из которого вызывается.
---
Обычно - это платформенная фишка. Выводится список всех документов у которых в поле "Вводятся на основании:" указан документ "Заказ клиента"
Или список документов "Является основанием для:" документа "Заказ клиента"
---
А где это можно найти, это же где в коде прописано?
---
ОбработкаЗаполнения
---
Поищите в модуле объекта того документа который вводите на основании.
---
Хорошо сейчас поищу в документе "Реализация торов и услуг"
---
В модуле объекта
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, ТекстЗаполнения, СтандартнаяОбработка)
 // Вставить содержимое обработчика.
КонецПроцедуры
Добрый вечер, можно опубликовать базу на веб сервер на пк, где не устанавливался апач, но доступ к нему есть?
---
Для публикации требуется веб-сервер, именно на той машине, с которой идет публикация.
---
Для публикации требуется веб-сервер, именно на той машине, с которой идет публикация.
---
а если базу опубликовал, но при переходе по имени выходит только папка с файлом default.vrd. При том localhost пишет it's work
---
Если с ПК, где опубликована база, при записи localhost/<имя_публикации> вы заходите в базу, то база опубликована правильно. Далее если вы во внутренней сети, то обращаться к базе можно через внутренний IP-адрес или имя компьютера и /<имя_публикации>. Для доступа через интернет аналогично, только указывать либо внешний IP-адрес, либо доменное имя и /<имя_публикации>.
---
решил протестировать на своём пк. Получилось что вместо базы по localhost/<имя_публикации>, открывается папка
---
Возможно служба веб сервера не перезапустилась. Бывает такое.
Добрый день, мне необходимо реализовать ограничения доступа к документам по пользователям, так что бы определённые пользователи видели только свои документы.
Моя идея такова, в процедуре которая делает запрос, прописать жестко условие отбора по ответственному, но вот я никак не могу найти в каком модуле она находится.
Никто не видел такого?
---
Добрый день! Открываете просто форму списка и там программно устанавливаете отбор в событии формы при открытии или при создании на сервере.
А так список там динамический, в форме вы это увидите.
И ещё лучше вынести эту доработку вместе с формой в расширение.
---
Добавить в запрос поле "Ответственный" и в процедуре ПриСозданииНаСервере()

```1c
    ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
    Список, "Ответственный", Пользователи.ТекущийПользователь(), ВидСравненияКомпоновкиДанных.Равно, , Истина,
    РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный);
```
---
Добрый день! Открываете просто форму списка и там программно устанавливаете отбор в событии формы при открытии или при создании на сервере.
А так список там динамический, в форме вы это увидите.
И ещё лучше вынести эту доработку вместе с формой в расширение.
---
Добавить в запрос поле "Ответственный" и в процедуре ПриСозданииНаСервере()

```1c
    ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка(
    Список, "Ответственный", Пользователи.ТекущийПользователь(), ВидСравненияКомпоновкиДанных.Равно, , Истина,
    РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный);
```
---
Спасибо, всё получилось.
Доброго времени суток.

Прошу совета от бывалых:
8.3, Управляемые формы. У реквизита табличной части документа составной тип (булево, число, строка, справочник.ссылка)

при начале редактирования текущей строки, если для элемента колонки задается использование типа "булево", система выдает для выбора список "Да/Нет" вместо желаемого флажка.

Вид поля меняется в процедуре "ПриНачалеРедактирования" табличной части. Для всех остальных типов значений (строка, число, справочник.ссылка) поведение ячейки соответствует ожидаемому, но вот для булево никак не могу побороть и показать флажок...

Кусок кода из ПриНачалеРедактирования:

```1c
    //для значения типа "булево" показываем в ячейке флажок
    ИначеЕсли ТипВидаАнализа=ПредопределенноеЗначение("Справочник.Лаборатория_ВариантыРезультатовАнализов.Флаг") Тогда

    //пробовал сперва установить значение реквизита в булево Элементы.ВидыАнализов.ТекущиеДанные.РезультатАнализа=Ложь;

    МассивТипов = Новый Массив;
    МассивТипов.Добавить(Тип("Булево"));

    Элемент.ТекущийЭлемент.ОграничениеТипа=Новый ОписаниеТипов(МассивТипов);
    Элемент.ТекущийЭлемент.Вид = ВидПоляФормы.ПолеФлажка;
    Элемент.ТекущийЭлемент.ВидФлажка=ВидФлажка.Флажок;
    Элемент.ТекущийЭлемент.РежимРедактирования=РежимРедактированияКолонки.Непосредственно;
```

В отладчике видно, что у элемента устанавливается Вид=Поле флажка и ВидФлажка=Флажок.

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

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

Что я делаю не так?
---
Да, отладчик включен.

В общем, похоже разобрался в чем была причина.

Я добавил форму обработки в расширение, а потом менял ее через сравнение-объединение с обработкой, которую делал изначально просто как внешнюю (причем внешняя это была типовая сохраненная, которую я правил в конфигураторе).
Обнаружил, что если просто форму не сравнивать-объединять, а просто руками править, все работает. Видимо в этом и была вся проблема.

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

В общем, похоже разобрался в чем была причина.

Я добавил форму обработки в расширение, а потом менял ее через сравнение-объединение с обработкой, которую делал изначально просто как внешнюю (причем внешняя это была типовая сохраненная, которую я правил в конфигураторе).
Обнаружил, что если просто форму не сравнивать-объединять, а просто руками править, все работает. Видимо в этом и была вся проблема.

Большое спасибо за попытки помочь и извините за потраченное время.
Доброго времени. Дорабатываю отчет на основе типового, осталось последнее условие и оно не отрабатывает, потому что не видит поле регистратор. А в конструкторе запроса регистратор видит. Не могу понять в чем причина. Прошу совета.
---
В общем переписал условие по другому, без регистратора. Все заработало.
---
В общем переписал условие по другому, без регистратора. Все заработало.
---
В параметрах виртуальной таблицы периодичность какая? надо, чтобы "регистратор", тогда на него ругаться не будет
---
Там была запись, но в консоли запросов, все отработало с такими же параметрами.
Добрый день!

Ситуация следующая.

На управляемой форме есть 2 поля формы. У первого тип значения "Строка", у второго "Элементы.КомпоновщикНастроекНастройкиОтбор.ТекущиеДанные.ЛевоеЗначение".
Второе поле является полем компоновки данных у которого есть событие "НачалоВыбора" при выполнении которого открывается форма выбора элемента компоновки данных из доступных элементов выбора.
Я хочу в первом поле получать значение выбора. Вызываю действие "НачалоВыбора" второго элемента формы. Событие срабатывает, но форма не открывается.
Может кто-нибудь подсказать куда копать?

Задача такова: Мне надо чтобы в первом поле, которое строковое, была возможность написать от что-нибудь от руки или выбрать элемент компоновки данных.

Пробовал:
 1. Просто выполнять процедуру "НачалоВыбора"
 2. Получать и Устанавливать действие
 3. Получить выбранное значение в событии "ОбработкаВыбора" второго поля, чтобы присвоить первому полю его строковое представление. Не срабатывает событие "ОбработкаВыбора".

Может кто-то знает как можно форму выбора доступных элементов компоновщика настроек получить?
---
Недавно приходилось решать похожую задачу. И к сожалению безуспешно: стандартную форму выбора поля компоновки найти и использовать не удалось.

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

К моему счастью в типовой конфигурации (ERP) оказалась общая форма "ФормаВыбораДоступногоПоля", которая имитирует форму выбора поля компоновки. Воспользовался ей.
Добрый день.
Есть внешняя печатная форма в УТ 11.4, которая прикрепляется к Заказу Клиента. Она выводится на печать все хорошо. При просмотра данного макета есть вверху слева кнопка ПЕЧАТЬ. Я так понимаю она стандартная. Подскажите, куда она обращается при нажатии в общем Модуле или в обработке? Просто нужно вывод название Принтера, который это все напечатал и сколько раз. Не могу отловить( Прикрепляю фото кнопки, если непонятно.
---
Это общая форма ПечатьДокументов. У формы есть модуль там процедура Печать(Команда) вот ее и вызывает форма при нажатии на Печать.
---
Это общая форма ПечатьДокументов. У формы есть модуль там процедура Печать(Команда) вот ее и вызывает форма при нажатии на Печать.
---
ОбщиеФормы.ПечатьДокументов

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