arefaste/1C_Forums huggingface dataset:
Как записать РегистрСведений при проведении документа, когда Отказ = Истина
---
Фоновые задания в помощь
---
В итоге сделал с помощью фонового задания:
Код обращения к фоновому заданию:

```1c
    перемНадо = Истина;
    ПараметрыВыполнения = Новый Массив;
    ПараметрыВыполнения.Добавить(перемНадо);
    ПараметрыВыполнения.Добавить(ТипДокументаСправочника);
    ПараметрыВыполнения.Добавить(ТипПроверки);
    УИФоновогоЗадания = Новый УникальныйИдентификатор();
    ФоновыеЗадания.Выполнить("ЗаписьРС.ЗапишемРС", ПараметрыВыполнения,УИФоновогоЗадания);
```

Код в общем модуле ЗаписьРС:

```1c
    Процедура ЗапишемРС (перемНадо ,ТипДокументаСправочника,ТипПроверки) Экспорт

    МенеджерЗаписи = РегистрыСведений.РезультатыПроверок.СоздатьМенеджерЗаписи();
    МенеджерЗаписи.Период = ТекущаяДата();
    МенеджерЗаписи.ТипДокументаСправочника = ТипДокументаСправочника;
    МенеджерЗаписи.ТипПроверки = ТипПроверки;
    МенеджерЗаписи.Записать();

    КонецПроцедуры
```

Особенность в том что параметрами вызываемой процедуры становятся элементы массива "ПараметрыВыполнения" в порядке их добавления. И запись в регистр сведений не всегда появляется в списке после выполнения кода, но появляется после перезапуска 1С.
---
Фоновые задания в помощь
---
Сделать ЭТО до начала транзакции.
---
Никак, ибо запись выполняется в транзакции, которая затем отменяется. Записывать в регистр до проведения документа или после
---
У каждого объекта есть стандартный реквизит "ДополнительныеСведения" тип структура.

Можно в этот момент добавить в структуру таблицу значений, которая по полям - Ваш регистр сведений.

А ПослеЗаписи проверить - если это свойство есть - перенести данные из таблицы в РС.
---
Если проведение документа отменено (Отказ = Истина), то После записи не вызывается же.
---
В итоге сделал с помощью фонового задания:
Код обращения к фоновому заданию:

```1c
    перемНадо = Истина;
    ПараметрыВыполнения = Новый Массив;
    ПараметрыВыполнения.Добавить(перемНадо);
    ПараметрыВыполнения.Добавить(ТипДокументаСправочника);
    ПараметрыВыполнения.Добавить(ТипПроверки);
    УИФоновогоЗадания = Новый УникальныйИдентификатор();
    ФоновыеЗадания.Выполнить("ЗаписьРС.ЗапишемРС", ПараметрыВыполнения,УИФоновогоЗадания);
```

Код в общем модуле ЗаписьРС:

```1c
    Процедура ЗапишемРС (перемНадо ,ТипДокументаСправочника,ТипПроверки) Экспорт

    МенеджерЗаписи = РегистрыСведений.РезультатыПроверок.СоздатьМенеджерЗаписи();
    МенеджерЗаписи.Период = ТекущаяДата();
    МенеджерЗаписи.ТипДокументаСправочника = ТипДокументаСправочника;
    МенеджерЗаписи.ТипПроверки = ТипПроверки;
    МенеджерЗаписи.Записать();

    КонецПроцедуры
```

Особенность в том что параметрами вызываемой процедуры становятся элементы массива "ПараметрыВыполнения" в порядке их добавления. И запись в регистр сведений не всегда появляется в списке после выполнения кода, но появляется после перезапуска 1С.
Все форумчанам привет!
Видали такое? (смотреть скрин) и я нет.
По какой причине такое может происходить?
---
По какой причине такое может происходить?
предложу такой вариант:

текст отредактировали (на экране), а год выполняется ещё старый.

PS
у меня такое иногда происходит, когда забываю сохранить внешнюю обработку, и хотя я её перезапускаю,
но код в обработке и на экране отличается.
---
Как предположение - динамически обновились (или просто глюк кэша). Вы видите одно условие, а фактически выполняется другое условие.
---
По какой причине такое может происходить?
1. вычисляемое выражение надо показать полностью + в табло указать все переменные этого выражения. Как вариант - (2).
2. морочите голову другим - выполнив ряд осознанных манипуляций и сделав удивленный вид.
---
Никого намеренно я в заблуждение не собирался вводить, скорее всего код изменил, а запускаю старый или же кэш надо чистить. Сегодня проверю, отпишу результаты
---
По какой причине такое может происходить?
предложу такой вариант:

текст отредактировали (на экране), а год выполняется ещё старый.

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

```1c
    ПравоВерно = Ложь;
```

Поэтому 1С просто не хочет это выполнять! :-)
---
согласен, чушь написал) Спасибо за исправление :D
Срок задан в рабочих днях. Как найти конечную дату?
---
Всем спасибо! В модуле ЗаполнениеДокументов есть функция
```1c
    // Функция возвращает дату отстоящую на заданное количество рабочих дней от начальной в соответствии с
    //регламентированным производственным календарем
    //
    //Параметры:
    // ДатаНач - начальная дата
    // ЧислоДней - количество рабочих дней, на которое искомая дата должна отстоять от начальной
    //
    Функция ОпределитьДату(ДатаНач, ЧислоДней) Экспорт
```
---
Срок задан в рабочих днях. Как найти конечную дату?

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

Теперь нужно искать где прописать эту внешнюю печатную форму т.к. это БСП
https://infostart.ru/1c/articles/674880/
---
А зачем сделали внешнюю печатную форму, почему не через расширение?
(не было бы проблемы)

Теперь нужно искать где прописать эту внешнюю печатную форму т.к. это БСП
https://infostart.ru/1c/articles/674880/
---
спасибо, буду смотреть.

А зачем сделали внешнюю печатную форму, почему не через расширение?
(не было бы проблемы)
добавили на скорую руку, чтобы выводились факсимиле, теперь страдают
---
зачем сделали внешнюю печатную форму, почему не через расширение?
(не было бы проблемы)

сделал расширением, проще чем обработку дружить с БСП. спасибо за подсказку!
Подскажите можно ли в СКД не выводить группировку при определенном условии, но выводить подчиненные ей. То есть не совсем исключить ее, а не выводить в том случае если значение группировки пустое или в подчиненной группировке 1 запись.
Например, группировка 1 по номенклатурной группе, подчиненная группировка 2 по номенклатуре. Если номенклатурная группа не заполнена, то ее не должно быть в отчете.
На картинке в левом столбце изобразила как есть сейчас, в правом - как должно быть
---
Условное оформление в группировке Номенклатурная группа:
Условие: Номенклатурная группа НЕ заполнено
Оформление: Минимальная высота = 1, Максимальная высота = 1
---
Подскажите можно ли в СКД не выводить группировку при определенном условии, но выводить подчиненные ей.Можно.

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

1) Самое простое - условное оформление, но, думаю, будет выглядеть несколько коряво - хотя все зависит от данных.
2) Надо продумать как будет сформирован набор данных для СКД (сам текст запроса) и его вывод. Т.е. первая и последняя вкладки СКД.
---
Каким образом можно с помощью условного оформления убрать строку?
Если эту задачу решать с помощью запроса, то он получится очень громоздким, а хотелось бы сделать решение универсальным
---
Условное оформление в группировке Номенклатурная группа:
Условие: Номенклатурная группа НЕ заполнено
Оформление: Минимальная высота = 1, Максимальная высота = 1
---
Спасибо, я ставила Минимальная высота = 0, Максимальная высота = 0 - не получилось
---
Каким образом можно с помощью условного оформления убрать строку? Строку не уберете, но можно вывести пустую вместо всяких символов.
(3) Если эту задачу решать с помощью запроса, то он получится очень громоздкимДа

П.С. Красота требует жертв.
П.С2. Думаю, для решения текущих задач достаточно и картинки слева. Со всем остальным - придется увеличить затраты.
---
Спасибо всем. Решение с условным оформлением пока устраивает.
Коллеги добрый день! У меня УПП Управление производственным предприятием, редакция 1.3 (1.3.112.4) платформа 1С:Предприятие 8.2 (8.2.19.130)
(http://www.1c.ru/)

При попытке открыть регламентированный отчет по НДС вот такая ошибка: {Отчет.РегламентированныйОтчетНДС.Форма.ФормаОтчета2017Кв1.Форма(17776,9)}: Процедура или функция с указанным именем уже определена (СтрРазделить)
Функция <<?>>СтрРазделить(ИсходнаяСтрока, Разделитель)

Как с этим быть?
---
Я переименовал эту функцию и.... ошибка осталось. Оказалось в конфигурации есть глобальная функция СтрРазделить и вот она то и пересекается с функцией внутри рег отчета с аналогичным именем. Придется в каждом отчет переименовывать функцию, неужели я один в такой ситуации??
---
У меня релиз не самый последний, но у меня эта функция выглядит в этом отчёте вот так:

Функция СтрРазделить82(ИсходнаяСтрока, Разделитель)
 Возврат ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(ИсходнаяСтрока, Разделитель);
КонецФункции

Также имя функции не должно совпадать с глобальными процедурами:

Синтаксис:

СтрРазделить(<Строка>, <Разделитель>, <ВключатьПустые>)
---
А у меня в последнем релизе Функция СтрРазделить без 82, могу сказать с полной уверенностью отчет на поддержке!!!
---
Если бы УПП запускалось под 8.3.6.1977 и выше - было бы понятно, там встроенная функция СтрРазделить появилась, поэтому такая ошибка и должна была появиться.
Почему она появляется под 8.2 непонятно. Но решение простое, переименовать саму функцию и её вызовы например так как у spartak_ss_88, СтрРазделить82.
---
Я переименовал эту функцию и.... ошибка осталось. Оказалось в конфигурации есть глобальная функция СтрРазделить и вот она то и пересекается с функцией внутри рег отчета с аналогичным именем. Придется в каждом отчет переименовывать функцию, неужели я один в такой ситуации??
---
схожая ситуация после обновления нетиповой БИТ экспедишн.
ЗаполнитьДокументооборотИзШаблона - на этой функции вылетает ошибка.
Изменение названия не дает ничего - ругается уже на функцию с новым названием
---
Наверное, стоит отметить ещё по функции СтрРазделить() такую особенность: в качестве разделителя она принимает на вход только один символ, а если подставить в разделитель строку, то принимает функция оттуда только первый символ строки как разделитель. Поэтому, когда необходимо использовать разделитель, состоящий из строки, а не одного символа, нужно использовать функцию РазложитьСтрокуВМассивПодстрок() (https://infostart.ru/1c/articles/1072819/).
---
то принимает функция оттуда только первый символ строки как разделитель
Если вы про системную функцию, то не первый, а каждый.
Всем привет ребята.

Хочу обработать нажатие по кнопке телеграмм бота.

```1c
    СтруктураНастроек = ПолучитьНастройкиTelegram();

    МассивКнопок = Новый Массив;
    МассивКнопок.Добавить("Отчет");
    МассивКнопок.Добавить("Отчет по пробегу");
    Кнопки = Новый Массив;
    Для каждого кнопка ИЗ МассивКнопок Цикл
    Кнопки.Добавить(Новый Структура("text, callback_data", кнопка, СтрЗаменить(кнопка, " ", ")+"/"+"Истина"+"/"+"Ложь"));
    КонецЦикла;
    Строки = Новый Массив;
    Строки.Добавить(Кнопки);
    КнопкиJs = ЗаписатьJS(Новый Структура("inline_keyboard", Строки));

    Приемник = "bot" + СтруктураНастроек.token + "/sendMessage?chat_id=" + СтрЗаменить(Формат(ID_Пользователя, "ЧДЦ=; ЧС=; ЧРГ=."), ".", ") + "&text=" + ТекстСогласования + "&reply_markup="+КнопкиJs;

    //*********
    Прокси.Установить("https", АдресПроксиСервера, ПортПроксиСервера);
    //*********

    HTTPСоединение = Новый HTTPСоединение(СтруктураНастроек.api,443,"11r","2023",,35,Новый ЗащищенноеСоединениеOpenSSL());

    HTTPЗапрос = Новый HTTPЗапрос(Приемник);
    Ответ = HTTPСоединение.Получить(HTTPЗапрос);
    ЗаписатьИсториюОтветов(ТекстСогласования,Справочники.Telegram_КомандыСистемы.Согласование,");
```

Кнопки вывожу а само нажатие не могу понять как обработать? Можете пожалуйста подсказать как бы это сделать
---
Ну вот, вы при опросе сервера получите новое сообщение. От обычных сообщений отличается наличием callback_query. Дальше уже проверяете callback_query.data и понимаете какая кнопка нажата.
---
У вас у кнопки каждой задан параметр callback_data. Вот это значение будет приходить к вам когда нажата будет кнопка. Т.е. обеспечив уникальность callback_data, вы сможете понять какая именно кнопка нажата.
---
А где собственно Я могу получить это значение? Перепробовал все и по гайдам и нет. Не могу понят, куда придется нажатие
---
В очереди сообщений к вам придет сообщение, в котором этот параметр будет заполнен. У вас webhook или polling используется?

Upd: параметр называется callback_query, в нем поле data будет совпадать с callback_data
---
Скорее всего это polling опрашиваю сервер раз 10-20 сек
---
Ну вот, вы при опросе сервера получите новое сообщение. От обычных сообщений отличается наличием callback_query. Дальше уже проверяете callback_query.data и понимаете какая кнопка нажата.
---
Да спасибо помогло разобрался.
---
Я думал там как то иначе будет показываться нажата или нет. А по итогу просто пишет Согласовано/Истина/Ложь если нажата не тогда неСогласовано/Истина/Ложь
Удаление не проведённых ПКО с периодичностью Х минус два дня. Подскажите, как программно установить период для удаления документов?
---
Где РазностьДат(Док.Дата, &ТекущаяДата, День ) > 2
РазностьДат не самая лучшая функция, лучше использовать ДобавитьКДате к одной из дат и сравнить

в вашем примере лучше так:

Док.Дата>ДобавитьКДате(&ТекущаяДата,День,-2)

PS а ещё лучше сразу передать в запрос дату=ТекущаяДата()-2*24*60*60
---
Создать регламентное задание, которое будет ставить пометку удаления, проверяя дату создания и статус проведения ПКО. С какой периодичностью запускается удаление помеченных?
---
Вопрос в проверке даты создания документа. Как можно проверить дату?)
---
Если ТекущаяДата() - ДатаДокумента > = 2*24*60*60 Тогда
---
В запросе как-то можно получить документы за этот период?
---
да, в запрос передайте параметр &ТекущаяДата, и от нее получайте

Где РазностьДат(Док.Дата, &ТекущаяДата, День ) > 2
---
Где РазностьДат(Док.Дата, &ТекущаяДата, День ) > 2
РазностьДат не самая лучшая функция, лучше использовать ДобавитьКДате к одной из дат и сравнить

в вашем примере лучше так:

Док.Дата>ДобавитьКДате(&ТекущаяДата,День,-2)

PS а ещё лучше сразу передать в запрос дату=ТекущаяДата()-2*24*60*60
Здравствуйте. Есть код ниже, но он не работает если тонкий клиент! Почему, подскажите пожалуйста?

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

    //Для Каждого Пункта Из Данные Цикл
    // ОСТЧ.Цена = Пункта.Цена;
    // ОСТЧ.Описание = Пункта.Описание;
    //КонецЦикла;

    КонецЕсли;
    КонецПроцедуры
```

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

    Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
    Запрос.УстановитьПараметр("Период", Дата);
    Запрос.УстановитьПараметр("ТипЦены", ТипЦены);

    РезультатЗапроса = Запрос.Выполнить();

    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выгрузить();
    Объект.ПоставкаСЗИ.Загрузить(ВыборкаДетальныеЗаписи);

    Возврат ВыборкаДетальныеЗаписи;
    КонецФункции
```
---
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выгрузить();
     Объект.ПоставкаСЗИ.Загрузить(ВыборкаДетальныеЗаписи);

Возврат ВыборкаДетальныеЗаписи;
Зачем возвращаете таблицу значений на клиент? Тонкий клиент ничего не знает про таблицу значений и не может с ней работать.
---
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выгрузить();
     Объект.ПоставкаСЗИ.Загрузить(ВыборкаДетальныеЗаписи);

Возврат ВыборкаДетальныеЗаписи;
Зачем возвращаете таблицу значений на клиент? Тонкий клиент ничего не знает про таблицу значений и не может с ней работать.
---
Здравствуйте. Блин, а может точно, я сначала заполнял на клиенте, сейчас попробую!
---
Точно. спасибо!
Прайс-лист
Нужно вставить гиперссылку на картинку в колонку в Excel (программно из 1С)
Мысль: есть Лист1 с отформатированными гиперссылками и кодами. Есть Лист2 с прайс-листом, в который ВПР-ом подтягиваю гиперссылки с Лист1.
Формула для ячейки:

```1c
    =ЕСЛИОШИБКА(ГИПЕРССЫЛКА(ВПР(RC[-3];List!C[-5]:C[-4];2;0); "Фото");")
```

Испробовала на маросе в Excel (все работает):

```1c
    Range("F20:F8895").FormulaR1C1 = "=IFERROR(HYPERLINK(VLOOKUP(RC[-3],List!C[-5]:C[-4],2,0), "Фото"),"")"
```

Пытаюсь сделать все то же из 1С. Выгружаю данные запроса. Открываю файл с каталогом, перемещаю лист в прайса, вставляю формулу в коде на 1С:

```1c
    ФормулаГиперссылки = "IFERROR(VLOOKUP(RC[-3],List!C[-5]:C[-4],2,0),'')";
    // ФормулаГиперссылки = "https://ya.ru/"; // Работает, открывает ссылку в браузере
    Лист1.Hyperlinks.Add(Лист1.Range(Лист1.Cells(НайденнаяЯчейкаФото.Row+1, WebColumn), Лист1.Cells(КоличествоСтрокТД, WebColumn)), ФормулаГиперссылки,, "Нажмите чтобы посмотреть (требуется выход в ИНТЕРНЕТ)", "Фото");
```

Открываю полученный файл. Встаю на ячейку, выбираю "изменить гиперссылку". Получаю непреобразованную формулу вида:
 IFERROR(VLOOKUP(RC%5b-3%5d,List!C%5b-5%5d:C%5b-4%5d,2,0),%22%22)
То есть он в формулу добавил какие-то спецсимволы.

Посоветуйте, что можно придумать, чтобы он формулу подхватывал
---
Получилось!

```1c
    ФормулаГиперссылки = "=IFERROR(HYPERLINK(VLOOKUP(RC[-3],List!C[-5]:C[-4],2,0), "Фото"),"")";
    Лист1.Range(Лист1.Cells(НайденнаяЯчейкаФото.Row+1, WebColumn), Лист1.Cells(КоличествоСтрокТД, WebColumn)).FormulaR1C1 = ФормулаГиперссылки;
```
---
```1c
    Стр3 = РаскодироватьСтроку(
    "http://ru.wikipedia.org/wiki/%D0%A8%D0%B0%D1%80",
    СпособКодированияСтроки.КодировкаURL);
```

вместо http://ru.wikipedia.org/wiki/%D0%A8%D0%B0%D1%80
ваша ссылка
---
Наверное это немножко не то.
Прикладываю картинку: так это выглядит в Excel. То есть в гиперссылке он видит спецсимволы. А в формуле при этом все красиво... Красным и синим подчеркнула одинаковые данные в формулах
То есть 1С для ссылки преобразовывает символы:
[ = %5b
] = %5d
" = %22
---
Получилось!

```1c
    ФормулаГиперссылки = "=IFERROR(HYPERLINK(VLOOKUP(RC[-3],List!C[-5]:C[-4],2,0), "Фото"),"")";
    Лист1.Range(Лист1.Cells(НайденнаяЯчейкаФото.Row+1, WebColumn), Лист1.Cells(КоличествоСтрокТД, WebColumn)).FormulaR1C1 = ФормулаГиперссылки;
```
Добрый день. Есть обработка с заполнением документа, хочу через нее изменить заголовок в форме документа. Пробовал так, заголовок меняется пока форма открыта, но после записи документа пропадает. Подскажите, пожалуйста, как сохранить заголовок?
```1c
    Форма = ДокОбъект.ПолучитьФорму("ФормаДокумента");
    Форма.Открыть();
    Форма.ЭлементыФормы.НадписьКомментарий.Заголовок = Комментарий;
    ДокОбъект.Записать();
    Форма.Закрыть();
```
---
Заголовок относится к свойствам элементов формы и в базе не хранится. Формируется при создании формы каждый раз заново. Так что если нужно менять заголовок на постоянно, то только в модуле формы при создании.
---
Заголовок относится к свойствам элементов формы и в базе не хранится. Формируется при создании формы каждый раз заново. Так что если нужно менять заголовок на постоянно, то только в модуле формы при создании.
---
спасибо.
Добрый день. Пытаюсь добавить в отчет поле, среднее с учетом дней - нужны начало и конец отчета. Как ни писал - говорит поле не найдено. Подскажите как написать начало и конец периода?
Прикрепил скрин параметров
---
[Параметры.Начало периода] и [Параметры.Конец периода]
Возможно так, а так в отбор заходишь, добавляешь и просто копипастишь оттуда имя. Если с пробелами то в квадратные скобки.
Только что так делал только по месяцам считал.
---
для этого необходимо использовать параметры отчета.
А в параметрах должен быть описан период отчета...
---
Стандартный период только через параметры отчета.
---
[Параметры.Начало периода] и [Параметры.Конец периода]
Возможно так, а так в отбор заходишь, добавляешь и просто копипастишь оттуда имя. Если с пробелами то в квадратные скобки.
Только что так делал только по месяцам считал.
---
Получилось так, что в самом отчёте запрещено использование Этих параметров в выражениях. Поэтому ругалось на такие варианты и их не возможно было выбрать в отборе.
---
Как не возможно? Вы же период формирования отчета указывать можете или он жестко задан?
---
Период указываю, а вот в отбор и в выражении нету, в параметрах настроено ограничение использования - отсюда и затыр встал. Конфигурация Далион.
---
А сюда возможно СКД выложить? Если да, можно поглядеть.
---
В колонке значение на строке начало периода &Период.ДатаНачала, и cоответственно в строке КонецПериода &Период.ДатаОкончания
Как то так...
---
&Период.ДатаНачала
Я не Хотел бы менять Сам отчет - В вариантах отчета добавить пользовательское поле. Или без "Значения" никак не использовать?
---
Тогда не очень понятно что Вы хотите.
---
я хочу в вариантах отчета, там где есть пользовательские поля добавить поле, в котором будет использоваться разность дат формирования отчета.
---
Спасибо !! Сработало
РазностьДат([Физическое лицо.Дата рождения], &[Период.ДатаОкончания], "год")
Добрый день, господа. УТ ред. 3.1. Я не опытный программист, учусь, начинаю входить в процессы. Возникла проблема, нужно вытянуть ИНН контрагента, который лежит в табличной части "ТаблицаДокументыПродажи", попробовал всякого, но бестолку. Дело в том что нужно отправить этот самый ИНН контрагента на печать в вебкассу. Пол-дела сделано, наладил печать ИНН на самой вебкассе, осталось передать параметр. Подскажите как вытащить ИНН?
---
Если эта процедура на клиенте, тогда:

```1c
    КонтрагентИНН = ПолучитьИННКонтрагента(ДанныеСтроки.Контрагент);
    ........
    &НаСервере
    Функция ПолучитьИННКонтрагента(Контрагент)
    Возврат Контрагент.ИНН;
    КонецФункции;
```
---
Вам же данные строки, для которой пробиваете чек, известны? Тогда:

```1c
    КонтрагентИНН = ДанныеСтроки.Контрагент.ИНН;
```
---
Если эта процедура на клиенте, тогда:

```1c
    КонтрагентИНН = ПолучитьИННКонтрагента(ДанныеСтроки.Контрагент);
    ........
    &НаСервере
    Функция ПолучитьИННКонтрагента(Контрагент)
    Возврат Контрагент.ИНН;
    КонецФункции;
```
---
Жалуется на ДанныеСтроки - переменная не определена
---
"ДанныеСтроки" я написал, к примеру, т.к. не вижу всей вашей процедуры и откуда берутся данные. Скорее всего так:

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