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

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

Из за того что реквизит табличной части Сделка имеет несколько типов, соответственно его раскрыть и получить комментарий нельзя.
Соответственно прописать ПутьКДанным: "Объект.Таблица.Сделка.Комментарий" нельзя

```1c
    КолонкаКомментарий = Форма.Элементы.Добавить("КомментарийСделкиД", Тип("ПолеФормы"), Форма.Элементы.Таблица);
    КолонкаКомментарий.Вид = ВидПоляФормы.ПолеВвода;
    КолонкаКомментарий.ПутьКДанным = "Объект.Таблица.Сделка.Комментарий"; //с таким путем выдается ошибка, если его не указывать поле вообще не выводится.
    КолонкаКомментарий.Заголовок = "Комментарий"
```

Как сделать что бы на форме данная колонка вычислялась??
---
Обходите строки коллекции и присваиваете значение колонки. Чтоб не делать объектного чтения, можно через БСП ОбщегоНазначения.ЗначениеРеквизитаОбъекта.
Это надо вызывать при создании насервере, после записи на сервере и при изменении колонки сделка (если она может меняться)
---
Добавить программно колонку в таблицу сделок (реквизит формы), заполнить и его уже добавить на форму.
Не забыть про "после записи на сервере", при изменении сделки и так далее перезаполнять колонку.
---
```1c
    МассивРеквизитов = Новый Массив;
    МассивРеквизитов.Добавить(Новый РеквизитФормы("РеквизитКомментарий", Новый ОписаниеТипов("Строка"), "Объект.Таблица", "Комментарий", Ложь));
    Форма.ИзменитьРеквизиты(МассивРеквизитов);

    КолонкаКомментарий = Форма.Элементы.Добавить("РеквизитКомментарий", Тип("ПолеФормы"), Форма.Элементы.ТаблицаТаблица);
    КолонкаКомментарий.Вид = ВидПоляФормы.ПолеНадписи;
    КолонкаКомментарий.ПутьКДанным = "Объект.Таблица.РеквизитКомментарий";
    КолонкаКомментарий.Заголовок = "Комментарий";
```

Реквизит создается, элемент создается. Как его заполнять построчно не пойму
---
Обходите строки коллекции и присваиваете значение колонки. Чтоб не делать объектного чтения, можно через БСП ОбщегоНазначения.ЗначениеРеквизитаОбъекта.
Это надо вызывать при создании насервере, после записи на сервере и при изменении колонки сделка (если она может меняться)
---
А сделать это ручками, без программного кода, получилось? Даже без участия расширения, в самой конфигурации? Идите от простого к сложному.
Хочу вывести кнопку в документ через внешнюю обработку:

```1c
    ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиЗаполнениеОбъекта();
    ...
    ДобавитьКоманду(ТаблицаКоманд,
    НСтр("ru = 'Создание накладных'"),
    "СозданиеНакладныхЗаполнениеФормы",
    ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыЗаполнениеФормы(),
    Истина,
    ");
    ...
    Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения, ПараметрыВыполнения) Экспорт
    Если ИдентификаторКоманды = "СозданиеНакладныхЗаполнениеФормы" Тогда
    Сообщить("Все получается");
    КонецЕсли;
    КонецПроцедуры
```

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

```1c
    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    // СтандартныеПодсистемы.ПодключаемыеКоманды
    ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
    // Конец СтандартныеПодсистемы.ПодключаемыеКоманды
    КонецПроцедуры
```

и всё заработало
Коллеги, приветствую!

Есть скд, в нём набор данных1 основной и наборданых 2.

В первом наборе просто детальные записи, поля Заказ,Отправитель,Получатель...
Во втором строки Услуга, Сумма,СуммаБезСкидки,ПроцентСкидки
Связь по ссылка заказ.

Делаю такую структуру отчета(скрин1).
Сумма,СуммаБезСкидки и Цена добавлена в ресурсы, но в строке с детальными записями не происходит суммирование. Что уже только не перепробовал. Как реализовать вывод итогов по услугам в детальные записи выше? такое возможно без явной группировки набора данных1?

Разделение на набор данных обязательное условие, как и детальные записи.
---
рещение оказалось простым
надо было просто в детальные записи в поля добавить сумма и тд...
---
На то они и детальные, что бы не суммировались
---
Возможно через условное оформление или ВычислитьВыражениеСГруппировкойМассив() возможно извратиться и добавить итог по сумме,сумме без скидки и проценту строкой выше?
---
рещение оказалось простым
надо было просто в детальные записи в поля добавить сумма и тд...
Добрый день!
Как добавить колонки "Длина" и "Ширина" в табличной части Заказа покупателя?
Вот прям как раз после колонки "Номенклатура"
---
ну так просто это не работает, ищите программиста
---
гугл в помощь
---
Задолбался гуглить((((
---
https://www.1s-up.ru/kolonki-tablicy-znachenij-v-1c-8-3-8-2/#:~:text=%D0%9F%D0%B5%D1%80%D0%B2%D1%8B%D0%B9%20%D1%81%D0%BF%D0%­BE%D1%81%D0%BE%D0%B1%20%E2%80%93%20%D0%BF%D0%B5%D1%80%D0%B5%­D1%82%D0%B0%D1%89%D0%B8%D1%82%D1%8C%20%D0%BA%D0%BE%D0%BB%D0%­BE%D0%BD%D0%BA%D1%83%20%D0%B8%D0%B7,%D0%BD%D1%83%D0%B6%D0%BD%D1%83%D1%8E%20%D0%BA%D0%BE%D0%BB%D0­%BE%D0%BD%D0%BA%D1%83%20%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86­%D1%8B%20%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B9%20­1%D0%A1.
---
Это я уже делал, мне эти поля нужны активнымии отдельными от номенклатуры
---
что значит активными? вы хотите их менять и чтобы они в номенклатуре менялись?
---
Да, именно так. Я их сделал, но они почему-то не активны, т .е. я не могу внести в них информацию
---
ну так просто это не работает, ищите программиста
---
Спасибо, я так и понял, что только так.....Печально
Как получить данные из реквизита формы, которая была добавленна с помощь кода, а не через конструктор формы? Для физ лица нужно заполнить контактные данные Адрес и Регистрация, а потом вытащить из этих реквизитов данные и добавить в шаблон docx формы. Перелопатил весь код, ничего не нашел(
---
Если БСП, то это табличная часть. При печати надо использовать не реквизиты формы, а данные объекта.
---
в модуле формы, реквизиты формы добавленные программно, не доступны напрямую. Они доступны через ЭтаФорма или ЭтотОбъект.

```1c
    ЭтаФорма.ИмяРеквизита
```
---
Если БСП, то это табличная часть. При печати надо использовать не реквизиты формы, а данные объекта.
---
БСП
Раскрыл объект и обратился к нужным мне строкам. В итоге смог получить нужны данные. Спасибо!
---
Пришлите код, может ваш вопрос будет более понятен
---
(3) Вероятно, прямо так (ЭтаФорма.ИмяРеквизита) не получится. Нужно через ЭтаФорма["ИмяРеквизита"].
---
Вероятно, прямо так (ЭтаФорма.ИмяРеквизита) не получится.
Все получится.
Добавил в расширение табличную часть Товары и форму=ФормаДокумента. Почему на ФормаДокумента не отображается табличная часть Товары и как сделать чтобы на ФормаДокумента отображалась Табличная часть Товары?
---
Там на форме в расширении в правой части окна есть кнопка добавить в расширение
---
В конфигураторе не отображается? Только что попробовал - добавил только форму документа - все отображается.
---
В конфигураторе не отображается
---
Проверил. Если добавить в расширение только форму документа, то табличная часть Товары отображается на форме, Но если добавить в расширение табличную часть Товары, то на форме документа пропадает Табличная часть Товары.

Подскажите что делать надо добавить в табличную часть Товары реквизит ПроцентКомиссии и сделать чтобы при вводе ПроцентаКомиссии пересчитывалась колонка Вознаграждение на основании колонки СуммыПродажи?
---
Пробовал добавить и ТЧ, у меня по-прежнему все отображается. Может дело в платформе? У меня 8.3.16.1814
---
Там на форме в расширении в правой части окна есть кнопка добавить в расширение
---
Может скриншоп приложить? Не понятно, какая кнопка, где? И почему она на форме в расширении?
---
В расширение добавил документ, форму документа, в расширении открыл форму и добавил "объект" в расширение, в конфигураторе ТЧ отображается, в предприятии нет, есть идеи?
---
есть идеи?
Видимость страниц изменяется для разных установленных реквизитов документа. Например для разного вида операции доступна своя страница.
Сравните элементы в конфигураторе и в настройке "Изменить форму"
---
Разобрался. В модуле менеджера документа есть процедура "ОбработкаПолученияФормы", она "принимает решения" какую форму открыть, добавил в расширении её, и всё теперь работает корректно

Спасибо всем кто участвовал)
Добрый день или вечер, кто когда прочитает.

Вопрос - Есть кластер 1с, в данном кластере отображаются сеансы пользователей и различные параметры - Захват Субд и прочее. Так вот, как программно обратиться к кластеру что бы получить сеансы с их параметрами?

Реализация интересует на яп 1с и на яп C#, в интернетах этих ваших, внятной информации не нашел, может не там искал.

Если кто то работал с похожей реализацией, буду искренне благодарен за информацию
---
Пообщайтесь с автором программы Обновлятор 1с.... ;)
---
Пообщайтесь с автором программы Обновлятор 1с.... ;)
---
Большое спасибо за подсказку)
Есть документ "Продажа абонементов", на основе этого документа создается документ "Посещаемость тренировок". Нужно связать реквизит "Статус оплаты" в продаже, с реквизитом "Статус абонемента" в посещаемости, при этом что бы меняя значения реквизита в посещаемости, в продаже также менялось
---
Может в Посещаемости нужно программно читать из регистра и выводить для чтения? Т.е., в составе реквизитов Посещаемости не должно быть такого элемента.
---
Завести РС и писать туда статус, а где нужно показывать
---
регистр есть
---
Каким образом статус оплаты должен меняться из посещения?
Абонемент или оплачен или не оплачен.
Нужно разобраться в бизнес-логике.
---
Нет тут логики. Ни бизнес, ни вообще хоть какой-то.
---
Может в Посещаемости нужно программно читать из регистра и выводить для чтения? Т.е., в составе реквизитов Посещаемости не должно быть такого элемента.
---
хорошо, спасибо
Всем добра. Работаю с Rest Odata. С получением данных проблем нет.
Пришло время их изменять. Тут и возникли сложности. Делаю все как по документации.
PATCH запрос на ресурс

```1c
    192.168.1.100/rest/odata/standard.odata/Catalog_ВидыЦен(guid('b90a2813-8380-11e9-9bec-e0d55e5ecc06')?$format=json

    в теле запроса указываю свойства которые хочу изменить

    {

    "Description": "2% cкидка 212121",
    "Идентификатор": "2Cкидка"

    }

    в ответ получаю.

    {
    "odata.error": {
    "code": "-1",
    "message": {
    "lang": "ru",
    "value": "Ошибка при выполнении обработчика - 'ПередЗаписью'"
    }
    }
    }
```

Причем такой ответ приходит как на обновление данных справочников так и для документов
---
может прав пользователю не хватает на изменение данных через ODATA?
---
может прав пользователю не хватает на изменение данных через ODATA?
---
кстати хороший вопрос. я использую пользователя которого создал в обработке настройка интерфейса Odata
---
чел ты гений!! Спасибо!
---
а у меня выходит
Использованный HTTP метод запрещен в данном контексте
---
Сообщение было скрыто модератором.
---
Сообщение было скрыто модератором.
---
Я использую такой код !

```1c
    use GuzzleHttp\Client;

    // данные для аутентификации
    $username = 'test';
    $password = 'test';

    // создаем экземпляр HTTP-клиента
    $client = new Client([
    'base_uri' => 'http://1cs.local/base/odata/standard.odata/',
    'timeout' => 5.0,
    ]);

    // данные для добавления в базу данных
    $newData = [
    'Number' => '666993811',
    'Date' => '2023-05-22T16:09:23',
    // Добавьте другие поля и значения для добавления
    ];

    // Преобразование данных в JSON
    $jsonData = json_encode($newData);

    // делаем PATCH-запрос к API 1С OData с передачей данных и заголовком авторизации
    $response = $client->request('PATCH', 'Document_ПередачаОСВАренду(guid(\'ded04c9b-f8a1-11ed-9dda-b06ebfbdbb65\'))', [
    'query' => [
    '$format' => 'json',
    ],
    'headers' => [
    'Authorization' => 'Basic ' . base64_encode("$username:$password"),
    'Content-Type' => 'application/json',
    ],
    'body' => $jsonData,
    ]);

    // проверка кода ответа
    if ($response->getStatusCode() === 200) {
    echo 'Запись успешно добавлена в базу данных 1С.';
    } else {
    echo 'Произошла ошибка при добавлении записи в базу данных 1С.';
    }
```
Добрый день. Подскажите пожалуйста, не могу сообразить.
Есть динамический список из регистра сведений с отбором по документу.
Надо при добавлении записи поле договор автоматически заполнять текущим документом.
Подскажите направление куда копать)))
---
перехватывайте событие Создание нового
Передавайте в форму элемента Параметрами нужные данные
в форме при создании в форме заполняйте все что надо
---
перехватывайте событие Создание нового
Передавайте в форму элемента Параметрами нужные данные
в форме при создании в форме заполняйте все что надо
Здравствуйте. Подскажите, пожалуйста, как проверить что СтрокаДанных .Данные входят в Метаданные.Документы? Делаю через попытка исключение, но может есть другой способ?
```1c
    ТаблицаДанных = НайтиПоСсылкам(Массив);
    Для Каждого СтрокаДанных Из ТаблицаДанных Цикл
    Попытка
    МетаданныеДок = Метаданные.Документы[СтрокаДанных.Метаданные.Имя];
    Исключение
    КонецПопытки;
    КонецЦикла;
```
---
Метаданные.Документы.Найти(<Имя>)
Метаданные.Документы.Содержит(<ОбъектМетаданных>)
---
Метаданные.Документы.Найти(<Имя>)
Метаданные.Документы.Содержит(<ОбъектМетаданных>)
---
спасибо!
Есть динамический спиисок справочника номенклатура с реквизитом "Ссылка". Также на форме есть ссылочный реквизит "Номенклатура".

Как сделать чтобы при изменение реквизита "Номенкалтура", динамический список позционировался на соответственной номенклатуре.
P.S. поиск по наименованию в реквизитах формы не подходит

```1c
    &НаКлиенте
    Процедура НоменклатураПриИзменении(Элемент)
    ИдентификаторСтроки = Список.НайтиСтроку(Новый Структура ("Ссылка", Номенклатура))[0].ПолучитьИдентификатор();
    Элементы.Список.ТекущаяСтрока = ИдентификаторСтроки;
    КонецПроцедуры
```

но получаю ошибку "Метод не обнаружен НайтиСтроку"
---
достаточно

```1c
    Элементы.Список.ТекущаяСтрока = Номенклатура;
```
---
достаточно

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

УПОРЯДОЧИТЬ ПО
    Ссылка
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ ПЕРВЫЕ 2
    ПКО.Ссылка КАК Ссылка
ПОМЕСТИТЬ вторая
ИЗ
    Документ.ПКО КАК ПКО

УПОРЯДОЧИТЬ ПО
    Ссылка УБЫВ
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
    первая.Ссылка,
    вторая.Ссылка КАК Ссылка1
ИЗ
    первая КАК первая,
    вторая КАК вторая.
---
А, торможу упорядочивание только после объединить работатет.

так
ВЫБРАТЬ РАЗЛИЧНЫЕ ПЕРВЫЕ 2
ПКО.Ссылка
ПОМЕСТИТЬ Таб1
ИЗ
Документ.ПКО КАК ПКО
УПОРЯДОЧИТЬ ПО
ПКО.Ссылка
;
ВЫБРАТЬ РАЗЛИЧНЫЕ ПЕРВЫЕ 2
ПКО.Ссылка
ПОМЕСТИТЬ Таб2
ИЗ
Документ.ПКО КАК ПКО
УПОРЯДОЧИТЬ ПО
ПКО.Ссылка УБЫВ
;
ВЫБРАТЬ
Таб1.Ссылка
Из Таб1

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
Таб2.Ссылка
Из Таб2

а потом выгружаешь запрос в ТЗ
и по индексам получаешь нужные данные
---
ВЫБРАТЬ РАЗЛИЧНЫЕ ПЕРВЫЕ 2
ПКО.Ссылка КАК Старые,
Неопределено КАК Новые
ИЗ
Документ.ПКО КАК ПКО
УПОРЯДОЧИТЬ ПО
Ссылка

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ РАЗЛИЧНЫЕ ПЕРВЫЕ 2
Неопределено,
ПКО.Ссылка
ИЗ
Документ.ПКО КАК ПКО
УПОРЯДОЧИТЬ ПО
Ссылка УБЫВ
---
Непонятно только зачем Старые и Новые, а не проще просто Ссылка.
И по индексу обращаться.
---
я только учусь, для меня много чего непонятно, поэтому как смогла.....спасибо! буду пробовать
---
Можете подсказать, почему возникает ошибка? Собственно, из-за нее и пришлось мудрить с запросами выше. И программно, и вручную выходит
---
А почему количество колонок - две, а не одна? Количество строк должно быть максимум 4?
---
А, торможу упорядочивание только после объединить работатет.

так
ВЫБРАТЬ РАЗЛИЧНЫЕ ПЕРВЫЕ 2
ПКО.Ссылка
ПОМЕСТИТЬ Таб1
ИЗ
Документ.ПКО КАК ПКО
УПОРЯДОЧИТЬ ПО
ПКО.Ссылка
;
ВЫБРАТЬ РАЗЛИЧНЫЕ ПЕРВЫЕ 2
ПКО.Ссылка
ПОМЕСТИТЬ Таб2
ИЗ
Документ.ПКО КАК ПКО
УПОРЯДОЧИТЬ ПО
ПКО.Ссылка УБЫВ
;
ВЫБРАТЬ
Таб1.Ссылка
Из Таб1

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
Таб2.Ссылка
Из Таб2

а потом выгружаешь запрос в ТЗ
и по индексам получаешь нужные данные
---
Спасибо! Все работает! Хоть понятно стало, в чем ошибка
---
Если документов всего 1, 2 или 3, то будут двойники. Объединить нужно без ВСЕ
---
а вот это спорно, всё зависит от условий задачи
---
а вот это спорно А чего тут спорного? Спорить тут не о чем. Представьте у вас всего один документ. Он попал как меньший так и больший. А далее вы его включили дважды так как "ОБЪЕДИНИТЬ ВСЕ" вместо "ОБЪЕДИНИТЬ". Если всего два документа, то в вашем варианте будет два документа два раза. Если три, то первый и последний по разу, а средний дважды.
Здравствуйте, мне нужно найти отличия в регистрах "ЗаработанныеПраваНаОтпуска" и "ПоложенныеВидыЕжегодныхОтпусков".
Написал вот такой запрос, но неправильно выводит данные, как нужно правильно было написать?

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

    СГРУППИРОВАТЬ ПО
    ЗаработанныеПраваНаОтпуска.Сотрудник,
    ЗаработанныеПраваНаОтпуска.ВидЕжегодногоОтпуска
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ПоложенныеВидыЕжегодныхОтпусков.Сотрудник КАК Сотрудник,
    ПоложенныеВидыЕжегодныхОтпусков.ВидЕжегодногоОтпуска КАК ВидЕжегодногоОтпуска
    ПОМЕСТИТЬ ВТ_Ввод
    ИЗ
    РегистрСведений.ПоложенныеВидыЕжегодныхОтпусков КАК ПоложенныеВидыЕжегодныхОтпусков

    СГРУППИРОВАТЬ ПО
    ПоложенныеВидыЕжегодныхОтпусков.Сотрудник,
    ПоложенныеВидыЕжегодныхОтпусков.ВидЕжегодногоОтпуска
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ВТ_Ввод.Сотрудник КАК Сотрудник
    ИЗ
    ВТ_Ввод КАК ВТ_Ввод
    ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Зараб КАК ВТ_Зараб
    ПО ВТ_Ввод.Сотрудник = ВТ_Зараб.Сотрудник
    ГДЕ
    ВТ_Ввод.ВидЕжегодногоОтпуска <> ВТ_Зараб.ВидЕжегодногоОтпуска

    СГРУППИРОВАТЬ ПО
    ВТ_Ввод.Сотрудник
```
---
В первом приближении:

```1c
    ВЫБРАТЬ
    1 КАК НомерТаблицы,
    Сотрудник,
    Отпуск
    ПОМЕСТИТЬ ВТ
    ИЗ
    Таблица1

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    2,
    Сотрудник,
    Отпуск
    ИЗ
    Таблица2
    ;
    Выбрать
    Сотрудник,
    Отпуск
    ИЗ
    ВТ
    СГРУППИРОВАТЬ ПО
    Сотрудник,
    Отпуск
    ИМЕЮЩИЕ
    CУММА(НомерТаблицы) < 3
```
---
мы должны как-то телепатически догадаться о том, как должно быть правильно?
---
у каждого сотрудника есть отпуска и они записаны в формате
1 таблица:
--------------------------
|Сотрудник|Отпуск|
--------------------------
2 таблица:
--------------------------
|Сотрудник|Отпуск|
--------------------------

У одного сотрудника несколько строк, мне нужно найти строки, которые не совпадают друг с другом, а потом получить только самих сотрудников
---
В первом приближении:

```1c
    ВЫБРАТЬ
    1 КАК НомерТаблицы,
    Сотрудник,
    Отпуск
    ПОМЕСТИТЬ ВТ
    ИЗ
    Таблица1

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
    2,
    Сотрудник,
    Отпуск
    ИЗ
    Таблица2
    ;
    Выбрать
    Сотрудник,
    Отпуск
    ИЗ
    ВТ
    СГРУППИРОВАТЬ ПО
    Сотрудник,
    Отпуск
    ИМЕЮЩИЕ
    CУММА(НомерТаблицы) < 3
```
---
Нужно сделать по такому принципу, но в 1с

```1c
    (SEL ECT * FROM ВТ_Зараб
    EXCEPT
    SEL ECT * FR OM ВТ_Ввод)
    UNI ON
    (SEL ECT * FR OM ВТ_Ввод
    EXCEPT
    SEL ECT * FR OM ВТ_Зараб)
```
Всем доброго дня!
Имеется база БП 30, актуальная, типовая. Просьба подсказать, как сделать следующим образом:
Имеется внешняя обработка, в ней возможность выбора периода (в ней можно указать период через Начало периода и Конец периода). После указания периода выполняется сохранение файла с текущей датой (данные в него попадают из указанного периода). Как в зависимости от выбранного периода давать сохраняемым файлам имена, наподобие:
- если периодом выбран первый квартал года, то в названии указать 1_квартал_года
- если периодом выбран год, то в названии указать год
- если выбран месяц, то в названии указать месяц_год.
Заранее спасибо за помощь.
---
Используйте метод глобального контекста ПредставлениеПериода (PeriodPresentation) с признаком финансового периода (ФП=Истина)
---
- если периодом выбран первый квартал года, то в названии указать 1_квартал_года
- если периодом выбран год, то в названии указать год
- если выбран месяц, то в названии указать месяц_год. И в чем проблема? Ааа, ну да - в отсутствии "готовой функции"... непреодолимое препятствие для современных 1Сников.

Можно ориентироваться на разность месяцев дат начала и конца периода: если равна 1 - это месяц, (иначе)если меньше 4 - квартал, иначе - год.

Код писать не буду принципиально, тем более, что в него надо вставить кучу проверок на неуказанные варианты - 2 месяца, полугодие, 2 года и так далее - как показывает опыт, "фантазия" пользователей тут просто безгранична.
---
Если дата начала периода совпадает с датой начала первого квартала года и дата окончания периода совпадает с датой окончания первого квартала года, то выбран первый квартал года.
Если дата начала периода совпадает с датой начала года и дата окончания периода совпадает с датой окончания того же года, то выбран год.
Если дата начала периода совпадает с датой начала месяца и дата окончания периода совпадает с датой окончания того же месяца, то выбран месяц.

Приступай.
---
Используйте метод глобального контекста ПредставлениеПериода (PeriodPresentation) с признаком финансового периода (ФП=Истина)
Доброго дня!

Расширением добавил ТЧ в справочник, но не могу вывести его на форму.
Подскажите, пожалуйста, как это можно сделать?
---
ПКМ на Объект и добавить в расширение
---
ПКМ на Объект и добавить в расширение
---
Спасибо!