arefaste/1C_Forums huggingface dataset:
Всем добрый день! Помогите пожалуйста.
Может кто-нибудь подскажет из личного опыта или какие-нибудь статьи подкинет для прочтения, а то я даже не знаю как в интернете поисковой запрос написать, чтобы что-то дельное нашло.
Вопрос стоит в следующем:
Перебор дат по запросу или по циклу, да хоть как-нибудь. Допустим есть запрос:

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

Банальный запрос, который выводит объекты и даты, но по одинаковому объекту может быть десять разных дат.
Подскажите, пожалуйста, статьи или хоть что-нибудь, где можно сделать:
1) Вывод только одной строки с одним из условий, к примеру: строка с наименьшей датой или строка с наибольшей датой;
2) Более сложный вариант, это вывод только той строки, что удовлетворяла бы условию, допустим, есть выборка:
Объект1 01.01.2016
Объект1 01.01.2018
Объект1 01.01.2020
Объект1 01.01.2022
Нужно вывести строку с максимальной датой, дата которой меньше 01.01.2023, то есть это строка Объект1 01.01.2022, остальных строк быть не должно. НО, ох это НО. Если в выборке есть строка больше этой даты, (допустим 01.01.2024), то строчка с этим объектом не должна выводиться вообще. А если в колонке даты нет вообще, тогда строчка выводится.

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

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

По условиям на расчётные поля группировки используй секцию ИМЕЮЩИЕ. Читай справку по запросам в платформе.
---
СГРУППИРОВАТЬ ПО
    ОбъектыПоНоменклатуре.Объект

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

```1c
    ТЗ = Запрос.Выполнить().Выгрузить();
    ТЗ.Колонки.Добавить("Валюта");
    Валюта = Справочники.Валюты.НайтиПоКоду("000000001");
    ТЗ.ЗаполнитьЗначения(Валюта,"Валюта");
```

Если все же в запросе, то так:

```1c
    Запрос.Текст =
    "ВЫБРАТЬ
    | Номенклатура.Ссылка КАК Номенклатура,
    | &Валюта
    |ИЗ
    | Справочник.Номенклатура КАК Номенклатура";
    Запрос.УстановитьПараметр("Валюта", Валюта);
```
---
конечно можно. Например параметром и получением из другой таблицы.
Рекомендую пройти курсы по запросам.
На Ютубе Кузнецова бесплатно.
А то детские вопросы задаете, а сколько их ещё будет, если не учиться?
---
Я бы с удовольствием нашел и посмотрел, как сделать. Обычно так и делаю. Но, к сожалению, я не представляю, как именно спросить у гугла то, что мне нужно.
Я даже не уверен, что тут понятно описал то, что хочу получить.
---
Валюта одна общая на всю таблицу? то есть каждой строке будет одна и та же валюта?
---
Да. Хотелось бы чтобы в результате запроса было поле "валюта" всегда с одним и тем же значением.
Можно добавить в результат колонку и заполнить ее, как написали ниже. Я думал над таким вариантом. Но возможно есть возможность получить нужное мне поле прямо из запроса.
---
обязательно в запросе?
Можно так:

```1c
    ТЗ = Запрос.Выполнить().Выгрузить();
    ТЗ.Колонки.Добавить("Валюта");
    Валюта = Справочники.Валюты.НайтиПоКоду("000000001");
    ТЗ.ЗаполнитьЗначения(Валюта,"Валюта");
```

Если все же в запросе, то так:

```1c
    Запрос.Текст =
    "ВЫБРАТЬ
    | Номенклатура.Ссылка КАК Номенклатура,
    | &Валюта
    |ИЗ
    | Справочник.Номенклатура КАК Номенклатура";
    Запрос.УстановитьПараметр("Валюта", Валюта);
```
---
В принципе можно и так. Думал над таким вариантом. Просто хотелось бы сразу из запроса.
Но если из запроса не получиться, буду использовать этот вариант.
---
в принципе можно и так:

```1c
    Запрос.Текст =
    "ВЫБРАТЬ
    | Номенклатура.Ссылка КАК Номенклатура,
    | Валюты.Ссылка КАК Валюта
    |ИЗ
    | Справочник.Номенклатура КАК Номенклатура,
    | Справочник.Валюты КАК Валюты
    |ГДЕ
    | Валюты.Код = "000000001" ";
```
---
А вашем случае разве нет поля Валюта в шапке документа?
---
нет. В документе инвентаризации поля валюта нет.
---
нет. В документе инвентаризации поля валюта нет.
Конечно тема наверное уже давно закрыта, но почему бы просто в запросе не сделать так:

```1c
    Запрос.Текст =
    "ВЫБРАТЬ
    | Документ.Инвентаризации КАК ДанныеИнвентаризации,
    | "RUR" КАК Валюта
    |ИЗ
    | ...;
```
Парни, добрый день. подскажите пожалуйста, переношу через КД справочник Договоры контрагентов из УПП в Бух КОРП, так вот в Бухгалтерии есть такой реквизит ОплатаВВалюте, тип Булево, на форме у него настроен переключатель и если значение ложь то это руб. Истина тогда Валюта, в УПП такого реквизита нет, и при переносе данных не получается сбросить в ложь реквизит ОплатаВВалюте?
---
Организацию добавить в параметры. При выгрузке дока сверять Организацию документа и параметра.
---
попробуй вот так
---
зато в УПП есть реквизит ВалютаВзаиморасчетов, сравнивай на значение рубли. Если рубли то ОплатаВВалюте = Ложь иначе Истина.
---
Спасибо, попробую
---
Источник - пусто. Приемник - ОплатаВВалюте. В ПКС: Значение = Ложь.
ПКО ПослеЗагрузки прописать условие, что-то вроде:

```1c
    Если НЕ Объект.Валюта = Константы.ВалютаРеглУчета.Получить() Тогда
    Объект.ОплатаВВалюте = Истина;
    Иначе
    Объект.ОплатаВВалюте = Ложь;
    КонецЕсли;
```
---
Спасибо Павел, буду пробовать!
---
Парни, подскажите, в справочнике договоры, на форме есть реквизит ОплатаВРублях, у самого справочника этого реквизита нет, тип реквизита Число (1.0) и есть поле переключателя где значение 1 это руб. а 0 это USD. и на форме если устанавливаешь значение руб. то договор считается не валютным, как при конвертации при переносе задавать значение этому реквизиту, чтобы он был руб.?
---
ОплатаВРублях = Объект.РасчетыВУсловныхЕдиницах;
---
Это где надо прописать?
---
это я расшифровал чему равен реквизит формы ОплатаВРублях. Он связан с реквизитом объекта РасчетыВУсловныхЕдиницах тип Булево
---
Понял, спасибо огромное, уже выгружаю))
---
Я что-то совсем запутался с этими реквизитами, а без этого документы не проводятся ругается что счета не валютные, подскажите пожалуйста!
---
можешь выложить сюда правила?
---
Да, во вложении
---
что, так и не получилось что-ли?
---
Нет
---
вроде уже всё разжевали... на чём затык?
---
Вроде все норм сейчас, валюту взаиморасчетов указал явно что это руб. и не досмотрел что в справочник валюты перенес еще один руб в константу валюта взаиморасчетов добавил правильный руб. и документ провелся, вроде все ок, буду проверять, еще вопрос, как прописать чтобы переносить документы только по одной организации?
---
Организацию добавить в параметры. При выгрузке дока сверять Организацию документа и параметра.
---
попробуй вот так
---
Сейчас попробую, спасибо
---
Парни, спасибо Вам огромное, все работает, все ништяк!
Можно ли использовать такое выражение для вычисляемого поля в СКД?
?(ПустаяСтрока(ФизЛицо.КК),КолвоДней*50,"")
Почему-то выдает "Синтаксическая ошибка"
---
Попробуйте ЗначениеЗаполнено()
---
```1c
    ВЫБОР КОГДА ЕстьNULL(ФизЛицо.КК, ") = " ТОГДА КолвоДней*50 ИНАЧЕ 0 КОНЕЦ
```
---
Если под скд подразумевается запрос - то нет. Действовать через Выбор...Когда...Тогда...Иначе...Конец
---
нет. конструкция ?() не работает. надо через ВЫБОР
ВЫБОР КОГДА ПустаяСтрока(ФизЛицо.КК) ТОГДА КолвоДней*50 ИНАЧЕ "" КОНЕЦ
---
Ну вот..
А в документации пишут, что любые выражения:
В выражениях вычисляемого поля есть ограничение: в нем нельзя использовать вычисляемые поля. В остальном ограничений нет: можно использовать все синтаксические конструкции языка выражений, можно использовать поля наборов данных, а также функции общих модулей конфигурации, описанные с ключевым словом Экспорт
Попробовала.
Но почему-то ПустаяСтрока тоже не работает.
Выходит ошибка: Функция не найдена "ПустаяСтрока"
---
В выражениях вычисляемого поля есть ограничение: в нем нельзя использовать вычисляемые поля. В остальном ограничений нет: можно использовать все синтаксические конструкции языка выражений, можно использовать поля наборов данных, а также функции общих модулей конфигурации, описанные с ключевым словом Экспорт
Под "синтаксические конструкции языка выражений" имеется ввиду: "Язык выражений системы компоновки данных"
См. Справку.
---
Попробуйте ЗначениеЗаполнено()
---
ЗначениеЗаполнено
Вот это сработало.
Спасибо большое!
---
не знаю, что такое пустаястрока, может тогда подойдёт стрдлина = 0 ?
Как получить в ЗУП 3.1 вид времени (Явка, отпуск и т.д.) по конкретному сотруднику на конкретный день? Возможно ли получить такие данные через штатные функции ЗУП или хотя бы запросом?
---
Посмотрите обработку. На первой закладке добавьте своих сотрудников, на второй ткните кнопку "Заполнить табель".
---
О каком времены вы говорите? Время по графику сотрудника - это один источник. Если введен индивидуальный график сотрудника - это другой источник. Если по сотруднику проведен документ Табель - это будет третий источник данных.
Судя по тому, что вы который день задаете один и тот же вопрос - не быстрее было посмотреть, как сделано в документе Табель?
Какую задачу вы решаете?
P.S. скорее всего вам нужно это:

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

Как можно определить активную форму в управляемое приложении?
---
ВводДоступен (IsInputAvailable)
Синтаксис:
ВводДоступен()

Возвращаемое значение:
Тип: Булево. Истина - ввод данных в форму возможен (форма активна); Ложь - форма не активна.
Описание:
Определяет, возможен ли ввод данных в форму. Может быть использован для того, чтобы определить, активизирована ли текущая форма.
Недоступен на сервере 1С:Предприятие. Не используется в модуле внешнего соединения.
---
ВводДоступен (IsInputAvailable)
Синтаксис:
ВводДоступен()

Возвращаемое значение:
Тип: Булево. Истина - ввод данных в форму возможен (форма активна); Ложь - форма не активна.
Описание:
Определяет, возможен ли ввод данных в форму. Может быть использован для того, чтобы определить, активизирована ли текущая форма.
Недоступен на сервере 1С:Предприятие. Не используется в модуле внешнего соединения.
---
почему то ложь всегда возвращает.
---
получилось) Спасибо)
---
Отлично!
---
простое и неочевидное решение. замечательно
Добрый день.
У формы отчета есть реквизит СтруктураРеквизитовФормы тип Произвольный.
Отчет создается и заполняется внешней обработкой.
При открытии отчета из временного хранилища должны читаться данные отчета по адресу, указанному в СтруктураРеквизитовФормы

```1c
    ДеревоДанныхРаздела = ПолучитьИзВременногоХранилища(
    СтруктураРеквизитовФормы["АдресВоВрХранилищеДеревоДанных" + ИмяРаздела]);
```

Как передать адрес АдресВоВрХранилищеДеревоДанных из внешней обработки в реквизит СтруктураРеквизитовФормы создаваемого отчета?
---
Возможно вы все-таки пытаетесь открыть форму отчета из внешней обработки, тогда передать параметры можно так, как описано в этой статье: https://infostart.ru/1c/articles/86853/ и дальше заполняйте что хотите.
---
Как передать адрес АдресВоВрХранилищеДеревоДанных из внешней обработки в реквизит СтруктураРеквизитовФормы создаваемого отчета?
Никак.
1. В реквизит формы можно предать данные только при получении/открытии формы
2. Что такое "создаваемого отчета"?
---
а есть код запускающий то чему надо передать параметр?
---
Возможно вы все-таки пытаетесь открыть форму отчета из внешней обработки, тогда передать параметры можно так, как описано в этой статье: https://infostart.ru/1c/articles/86853/ и дальше заполняйте что хотите.
---
я ничего не пытаюсь открыть - вам показалось....
Делаю внешний отчёт "Прайс-лист" через СКД. Из регистра сведений (периодический) Цены номенклатуры поставщика достаю цены и нужные поля. Там несколько видов цен (розничная, закупочная и т.п.).
Как можно сделать, чтобы каждый вид цены отображался в отдельной колонке? Данные только через СКД.
Что-то типо того:
Цена розничная Цена закупочная
         25 15
---
Значение цены в ресурсе...Откройте список регистра вы поймете как вывести в отчет. Только помните цену надо брать на срез первого или последнего, или на ДатуВремя с точностью до секунды. Посмотрите какая периодичность в Вашего регистра
---
```1c
    ВЫБРАТЬ
    ЦеныНоменклатурыСрезПоследних.Цена КАК Цена,
    ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура
    ПОМЕСТИТЬ Розничные
    ИЗ
    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ВидЦены = &Розничная) КАК ЦеныНоменклатурыСрезПоследних
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура,
    ЦеныНоменклатурыСрезПоследних.Цена КАК Цена
    ПОМЕСТИТЬ Закупочные
    ИЗ
    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ВидЦены = &Закупочная) КАК ЦеныНоменклатурыСрезПоследних
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    СпрНоменклатура.Ссылка КАК Номенклатура,
    Розничные.Цена КАК Розничная,
    Закупочные.Цена КАК Закупочная
    ИЗ
    Справочник.Номенклатура КАК СпрНоменклатура
    ЛЕВОЕ СОЕДИНЕНИЕ Розничные КАК Розничные
    ПО СпрНоменклатура.Ссылка = Розничные.Номенклатура
    ЛЕВОЕ СОЕДИНЕНИЕ Закупочные КАК Закупочные
    ПО СпрНоменклатура.Ссылка = Закупочные.Номенклатура
```
---
А если будет 5 видов цен?
Это каждый раз надо будет дорабатывать. Сделать как-нибудь универсально.
---
ВидЦены выведи в колонках
---
В регистре сведений есть измерение ВидЦены -его как поле добавляйте и в таблицу колонкой
---
Спасибо, помогло. ВидыЦен выводятся, как колонки. Только немного не понял, как сделать, чтобы там и цена соответствующая появилась?
---
Значение цены в ресурсе...Откройте список регистра вы поймете как вывести в отчет. Только помните цену надо брать на срез первого или последнего, или на ДатуВремя с точностью до секунды. Посмотрите какая периодичность в Вашего регистра
---
Да, я её в ресурсы добавил. Немного не понял, как указать, чтобы она выводилась.
---
Все разобрался, спасибо.
---
Добрый день, у Вас не осталось примеров отчета?
Нужно установить маску на поле ввода, чтобы пользователь мог ввести только ссылку на свой телеграмм, вроде этого: "@Some_Kind_Of_Test".
Кто-то сталкивался с этим?
---
Свойство "Маска" у поля ввода слабо поможет. У него очень ограниченные возможности. Так что только программно. Можно использовать событие ПриИзменении, по окончании ввода, или ИзменениеТекстаРедактирования, чтобы в реальном времени контролировать пользовательский ввод.
---
А в чём вопрос? Как сделать маску или какой формат у маски должен быть? Маску можно сделать, например, с помощью регулярных выражений. Если вопрос о формате никнейма, то прочитайте на сайте телеграм: https://telegram.org/faq#q-what-can-i-use-as-my-username
---
да, вопрос как маску сделать, что бы пользователь мог ввести только в таком формате. Или проще программно при изменении проверять?
---
Свойство "Маска" у поля ввода слабо поможет. У него очень ограниченные возможности. Так что только программно. Можно использовать событие ПриИзменении, по окончании ввода, или ИзменениеТекстаРедактирования, чтобы в реальном времени контролировать пользовательский ввод.
Добрый день, коллеги!
В первые сталкиваюсь с такой ситуацией...

Добавил форму в расширение(Адаптация, галки лишние отключены),
переназначаю события формы (Нажатие на кнопку , Вместо)

Событие вообще не сохраняется... после перезапуска пропадает событие на форме,
в модуле код существует, но в него не попадает...
Кто-нибудь сталкивался с подобным ?? Help
---
вполне возможно, что для декорации это не отрабатывает при редактирования формы.
Но если нужно событие именно Вместо, то можно подключить к обработчику нужную процедуру программно.
В модуле же осталась процедура созданная для обработчика, вот ее и подключить программно

```1c
    Элементы.ИмяДекорации.УстановитьДействие("Нажатие", "Расш1_ИмяПроцедуры");
```

PS. Проверил. Есть такой баг. Если создавать в самой форме в расширении, то не сохраняет.
Но если добавить саму процедуру обработчика из основной формы и выбрать как добавление расширения обработчика, то все подставляется и сохраняется. Соответственно отрабатывает штатно.
Просто баг конфигурирования в самой форме расширения конфигурации для декорации.
---
Попробуйте почистить кэш.
Если не поможет, удалите форму из расширения и заимствуйте еще раз.
---
Эти все варианты я перепробовал, загрузил чистую конфу и новое расширение создал, всё равно одно и то же
---
вполне возможно, что для декорации это не отрабатывает при редактирования формы.
Но если нужно событие именно Вместо, то можно подключить к обработчику нужную процедуру программно.
В модуле же осталась процедура созданная для обработчика, вот ее и подключить программно

```1c
    Элементы.ИмяДекорации.УстановитьДействие("Нажатие", "Расш1_ИмяПроцедуры");
```

PS. Проверил. Есть такой баг. Если создавать в самой форме в расширении, то не сохраняет.
Но если добавить саму процедуру обработчика из основной формы и выбрать как добавление расширения обработчика, то все подставляется и сохраняется. Соответственно отрабатывает штатно.
Просто баг конфигурирования в самой форме расширения конфигурации для декорации.
---
Скопировал кнопку (типовую скрыл) и там добавил свою процедуру... Но ваш вариант мне больше нравится ) переделаю та. Спасибо
---
Не уверен, что поможет, но попробуй именно из модуля формы, который в конфигурации добавить в расширение (ПКМ по процедуре, добавить в расш.)
---
Пробовал , не помогает )
---
Какая версия платформы?
---
Пробовал на разных версиях, с 8.3.18 по самой новой - результат один
Здравствуйте! Сейчас идет дублирование строк, я так понимаю это из-за не верно настроенных связей. Как настроить правильно настроить связь, чтобы на одного контрагента была одна строка. Спасибо.

ВЫБРАТЬ
 Контрагенты.Наименование КАК ФИО,
 Контрагенты.ИНН КАК ИНН,
 Контрагенты.КПП КАК КПП,
 ВЫБОР
  КОГДА ФизическиеЛицаКонтактнаяИнформация.Вид = &АдресФизЛица
   ТОГДА ФизическиеЛицаКонтактнаяИнформация.Представление
 КОНЕЦ КАК АдресФизЛица
ПОМЕСТИТЬ ВременнаяТаблица
ИЗ
 Справочник.Контрагенты КАК Контрагенты
  ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица.КонтактнаяИнформация КАК ФизическиеЛицаКонтактнаяИнформация
  ПО (Контрагенты.ЮридическоеФизическоеЛицо.Ссылка = ФизическиеЛицаКонтактнаяИнформация.Ссылка)
---
как-то так:

```1c
    ВЫБРАТЬ
    Контрагенты.Наименование КАК ФИО,
    Контрагенты.ИНН КАК ИНН,
    Контрагенты.КПП КАК КПП,
    ФизическиеЛицаКонтактнаяИнформация.Представление КАК АдресФизЛица
    ПОМЕСТИТЬ ВременнаяТаблица
    ИЗ
    Справочник.Контрагенты КАК Контрагенты
    ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица.КонтактнаяИнформация КАК ФизическиеЛицаКонтактнаяИнформация
    ПО (Контрагенты.ЮридическоеФизическоеЛицо = ФизическиеЛицаКонтактнаяИнформация.Ссылка)
    И ФизическиеЛицаКонтактнаяИнформация.Вид = &АдресФизЛица
```
---
как-то так:

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