arefaste/1C_Forums huggingface dataset:
Всем привет! Вопрос имеется по Рознице 2.2.
Я получаю запросом данные о необходимом количестве номенклатуры, на которую надо оформить заказ поставщика.

Упрощу запрос для примера:
КодВЫБРАТЬ
   ПродажиОбороты.Номенклатура КАК Номенклатура,
   ЕСТЬNULL(ПродажиОбороты.КоличествоОборот, 0) КАК КоличествоОборот,
   ПродажиОбороты.Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
   Упаковки.Ссылка КАК Упаковка
ИЗ
   РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, Период, Склад = &Склад) КАК ПродажиОбороты
      ЛЕВОЕ СОЕДИНЕНИЕ Справочник.УпаковкиНоменклатуры КАК Упаковки
      ПО ПродажиОбороты.Номенклатура = Упаковки.ВладелецПоказать полностью

Подскажите как избавиться от дублирования строк при левом соединении?
Когда к одной номенклатуре создано две и более упаковки, мы получим задвоение строки при левом соединении.

В базе используются индивидуальные наборы упаковок. Номенклатура в регистрах продаж и остатков числится в единицах измерения, а заказывать у поставщика планируется в упаковках (при их наличии).

Как красиво решить проблему?
---
первую попавщуюся не получится без выбрать первые. А вот сгруппировать во вложенном запросе вполне!
Иначе пишите условие, чтобы была всегда максимуму 1 запись!
---
Ну, так сгруппировать же. Подойдёт?

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

```1c
    ...
    Соединение (Выбрать Максимум(Ссылка) КАК Ссылка Из Справочник.УпаковкиНоменклатуры Сгруппировать По Владелец)
```
---
Максим, и Евгений, спасибо!
Все доброго дня.
У меня такая проблема при переносе данный из БП в УТ у одного партнера получилось так что два контрагента. И мне надо как-то от одного партнера перенести контра агента на другого партнера.
Может кто знает где храниться взаимосвязь партнеров с контрагентами, может там какой-нибудь регистр сведений?
---
-зайдите в требуемого партнёра
-перейдите на вкладку "Контрагенты"
-войдите в нужного
-на вкладке "Партнёр" выберите требуемого

"Записать и закрыть"

если получилось, отмечайте как правильный ответ, )
---
У контрагента есть реквизит Партнер. Надо его перевыбрать, и все (или программно перезаполнить).
---
Не подскажете где искать этот реквизит?)
---
Попробуйте через Все функции открыть справочник Контрагенты. Еслии там не найдете, то через обработку Групповое изменение реквизитов.
---
Добрый день. А что за релиз у вас? У меня в УТ 11.4.8.84 он находится на вкладке основное, но у вас ее просто нет, также попробуйте посмотреть Еще-Изменить форму и посмотрите есть ли там партнер и установлена ли у него видимость.
---
https://forum.infostart.ru/forum9/topic223816/
---
-зайдите в требуемого партнёра
-перейдите на вкладку "Контрагенты"
-войдите в нужного
-на вкладке "Партнёр" выберите требуемого

"Записать и закрыть"

если получилось, отмечайте как правильный ответ, )
1С УТ 11.4 (Управляемые формы)

В Обработка.ПодборТоваровВДокументПродажи есть галочка ТолькоВналичии, которая выкидывает товар с Типом - Услуга.

Нужно видеть Товар с остатком больше 0 и все услуги.

Если бы все решалось запроса, было бы просто:

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

но там на динамический список накладывается отбор

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

    ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(
    ГруппаОтбораТолькоВНаличииНоменклатура,
    "ВНаличииВБазовыхЕдиницах", 0, ВидСравненияКомпоновкиДанных.Больше,,Форма.ТолькоВНаличии);
```

и как быть? можно както двойной отбор или условие запихнуть в отбор в динамическом списке?
---
В общем-то все необходимое уже сделано: есть группа отборов с типом "ИЛИ", в ней отбор по остатку. Попробуйте добавить в эту же группу отбор по типу номенклатуры. Думаю, Вы получите нужный результат: в списке будут или товары с остатком, или услуги:

```1c
    ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(
    ГруппаОтбораТолькоВНаличииНоменклатура,
    "ТипНоменклатуры", Перечисления.ТипыНоменклатуры.Услуга,,,Форма.ТолькоВНаличии);
```

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

```1c
    ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(
    ГруппаОтбораТолькоВНаличииНоменклатура,
    "ТипНоменклатуры", Перечисления.ТипыНоменклатуры.Услуга,,,Форма.ТолькоВНаличии);
```

Обращу внимание на последний параметр. Он включает и отключает использование отбора в зависимости от значения флажка "Только в наличии". Оставьте его в таком виде, если хотите включать отбор по услугам синхронно с установкой флажка, либо замените на что-то другое в зависимости от Ваших целей.
---
Решение в лоб- добавить колонку ЕстьОстатокИлиУслуга и отбирать по ней
Ребят, такая задача, у нас есть Документооборот 2.1 КОРП, там хранятся документы аж с 2014 года, они по-большему счёту никому ненужны, НО их нужно сохранить и иногда обращаться к ним для чтения. Идея какая и скорее всего не новая, сделать копию информационной базы документооборота и назвать её архив с перемещением старых документов, но я в силу своей неопытностью и будучи человеком, который никогда ничего подобного не делал, хочу спросить можно ли это сделать стандартными функциями документооборота или возможностями 1С, так чтобы не усложнять никому жизнь и тем самым, что в рабочем Документообороте были документы не старше 3х лет.
---
Не видел данную конфигурацию, но для любых конфигураций универсальное средство:
1. Копируем базу.
2. В копии помечаем на удаление не нужные документы.
3. Удаляем помеченные на удаление.
4. В рабочей базе проделываем аналогичную работу.
---
Не видел данную конфигурацию, но для любых конфигураций универсальное средство:
1. Копируем базу.
2. В копии помечаем на удаление не нужные документы.
3. Удаляем помеченные на удаление.
4. В рабочей базе проделываем аналогичную работу.
---
и убедитесь что у вас сами файлы с доками хронятся в базе данных, а не на диске
Есть поле набора данных ДатаПрибытия, в котором содержится дата прибытия (тип значения - Дата, состав Дата ), в части строк пустые значения - (01.01.01) в части - нормальные даты.

Мне в ресурсе нужно получить Минимум, без учета пустых значений.

Из всего, что можно использовать в СКД, я нашел только функцию ВычислитьВыражениеСГруппировкойМассив(), в которой третий параметр - отбор, и там можно использовать выражение типа ДатаПрибытия > ДАТАВРЕМЯ(1, 1, 1)

Больше ничего похожего на отбор не нашел. Ну и не могу понять, как эту функцию приспособить под эту ситуацию.

Есть какие нибудь способы таких отборов в выражениях в ресурсах СКД?
---
Про выбор слышали?
МИНИМУМ(ВЫБОР КОГДА ДатаПрибытия = ДАТАВРЕМЯ(1, 1, 1) ТОГДА NULL ИНАЧЕ ДатаПрибытия КОНЕЦ)
---
Про выбор слышали?
МИНИМУМ(ВЫБОР КОГДА ДатаПрибытия = ДАТАВРЕМЯ(1, 1, 1) ТОГДА NULL ИНАЧЕ ДатаПрибытия КОНЕЦ)
---
Спасибо, ваш вариант работает.

(3) Это не взлетело, СКД не находит этой функции - ЗначениеЗаполнено()
---
СКД не находит этой функции - ЗначениеЗаполнено()Не может такого быть. :) Подскажите, а какую платформу Вы используете?
---
1С:Предприятие 8.3 (8.3.14.1630) но режим совместимости у конфигурации Версия 8.3.10

скрины прикрепил
---
Слишком много "н". :-)
---
похоже я с синтаксисом налажал
---
буковки "Н" задвоил, тоже рабочий вариант, прошу прощенья
---
Чуть более наглядно, чем совет выше:

```1c
    Минимум(Выбор
    Когда ЗначениеЗаполнено(ДатаПрибытия)
    Тогда ДатаПрибытия
    Конец)
```
---
На Инфостарте есть целый цикл статей посвященных СКД, там много всего интересного чего нет в учебниках. Мне, например, очень даже помогает время от времени. Всего помнить и знать невозможно.
Добрый день. В СКД использую вычисляемое поле для получения разницы в процентах.
Есть два числа первое число 15 и второе число 83.
Задача: необходимо получить разницу в %, на сколько процентов первое число меньше второго.
Считаю по формуле 15*100 / 83 = 18% или 15 / 83 * 100 = 18%
Можно как-то в вычисляемом поле добавить символ "-" Если другое вычисляемое поле Дельта будет со знаком минус.
---
дельта, это разница первого числа и второго? Сделайте через Выбор Когда (первоечисло-второечисло)<1 Тогда
-1*(вашаФормула) Иначе (вашаФормула) Конец
---
дельта, это разница первого числа и второго? Сделайте через Выбор Когда (первоечисло-второечисло)<1 Тогда
-1*(вашаФормула) Иначе (вашаФормула) Конец
---
Спасибо. Работает.
Создан реквизит. Строка. Поле ввода. Для копирования наименования.
При добавлении поля ввода с этим реквизитом в форму элемента - все нормально.

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

Конф. 1С УПП.
---
скорее всего в этом и дело, реквизит должен быть для группы
---
Проверьте тынц, может в этом дело.
---
скорее всего в этом и дело, реквизит должен быть для группы
Можно как то установить соединение с SQL БД и сохранить его в реквизит формы что бы потом в дальнейшем использовать?

```1c
    ИмяСервераSQL = "WIN2012\TEST_SQL";
    ПользовательSQL = "UserDB";
    ПарольSQL = "Pass123456";
    БазаДанныхSQL = "TestDB";
    ТаблицаSQL = "Table_1";

    /////////////////////////////////////////
    //Подключение к SQL-серверу
    Попытка
    Соединение = Новый COMОбъект("ADODB.Connection");
    Команда = Новый COMОбъект("ADODB.Command");
    Выборка = Новый COMОбъект("ADODB.RecordSet");
    Соединение.ConnectionString =
    "driver={SQL Server};" +
    "server="+ИмяСервераSQL+";"+
    "uid="+ПользовательSQL+";"+
    "pwd="+ПарольSQL+";"+
    "database="+БазаДанныхSQL+";";
    Соединение.ConnectionTimeout = 30;
    Соединение.CommandTimeout = 600;
    //Открытие соединение
    Соединение.Open();
    Сообщить("Успешное подключение!");
    Исключение
    Сообщить(ОписаниеОшибки());
    Возврат;
    КонецПопытки;
```
---
Лучше используйте временные хранилища или на крайний случай параметры сеанса.
---
На практике соединение надо устанавливать при каждом запуске информационной базы. Для минимизации затрат можно поместить в общий модуль с повторным использованием (вроде как через каждые 20 минут очищается). Com-объекты в реквизит не запихнуть, это не имеет смысла.
---
А если сделать реквизит формы с неопределенным типом и поместить в него созданное COM соединение, то при последующем нажатии другой кнопки на форме я смогу получить значение с реквизита и продолжить работать с соединением?
---
Лучше используйте временные хранилища или на крайний случай параметры сеанса.
---
Вот все эти переменные делайте реквизитами формы и сохраняйте в хранилище при закрытии формы...
При создании формы их восстанавливайте

```1c
    ИмяСервераSQL = "WIN2012\TEST_SQL";
    ПользовательSQL = "UserDB";
    ПарольSQL = "Pass123456";
    БазаДанныхSQL = "TestDB";
    ТаблицаSQL = "Table_1";
```
---
Объявите переменную и пользуйтесь на здоровье
Собственно вопрос. Есть ли какая-нибудь возможность из файла кэша ConfigCacheStorage достать тексты модулей?
V8Unpack.exe распаковывать данный файл откатывается. cfTool.exe тоже падает с ошибкой "$ (хотя в отличии от V8Unpack файлы cacheStorage распаковывает).
Возможно есть какие-нибудь другие утилиты? Или возможно есть механизм, который позволит после изменения исходного файла в Hex-редакторе открыть его вышеуказанными программами?
---
все упаковано по алгоритму deflate со смещением от начала в некоторое количество байт, видимо. Некоторый код поставляется без текстов модулей (если такие есть) может присутствовать в виде подготовленной (откомпилированной для стековой машины интерпретатора 1С) последовательности команд без текста - это в обратку будет непросто привести. А что там и где - рыться надо методом научного втыка...
---
Есть!
Но, таким путем его проще написать самому!
"Овчинка -выделки не стоит"
---
А в чем заключается механизм, в двух словах?
---
все упаковано по алгоритму deflate со смещением от начала в некоторое количество байт, видимо. Некоторый код поставляется без текстов модулей (если такие есть) может присутствовать в виде подготовленной (откомпилированной для стековой машины интерпретатора 1С) последовательности команд без текста - это в обратку будет непросто привести. А что там и где - рыться надо методом научного втыка...
Внешний отчет, не мой, в коде получается макет ОбщийМакет.ПФ_MXL_ТОРГ12. Скрин с областями прикрепил. Ниже области Шапка есть область ДатаНомер, в нём есть два параметра:
НомерДокумента
ДатаДокумента,
В коде отчета область ДатаНомер не получается.
Отчет используется в двух одинаковых релизах конфигурации, на одинаковых платформах.
Так получается область:
ОбластьМакетаШапка = Макет.ПолучитьОбласть("Шапка");

В одной конфигурации ОбластьМакетаШапка при остановке на следующей строке содержит параметры: НомерДокумента, ДатаДокумента, в другой конфигурации не содержит и соответственно выдает ошибку при их заполнении.
Не получается разрешить загадку, подскажите пожалуйста.
---
может в самой конфигурации макет изменён (в пользовательском режиме) ?
---
может в самой конфигурации макет изменён (в пользовательском режиме) ?
---
Спасибо большое, так и есть, изменен.
---
Сохранить измененный макет получилось, а как его загрузить в другой базе, не получается и в интернете инфу не нашел, подскажи пожалуйста, если знаешь
---
Всё, все вопросы разрешил, просто скопировал макет в одной базе и вставил его в макет в другой
Добрый день. Сформировал простой отчёт в СКД по продажам для УТ 10.3. При установке периода данные исчезают.
---
У меня всё сформировалось, скорее всего вы перепутали начало и окончание периода
---
У меня всё сформировалось, скорее всего вы перепутали начало и окончание периода
---
ограничьте период с - по (любые даты поставьте), тоже формирует?
---
Спасибо. Действительно периоды перепутал.
Здравствуйте!
ЗУП 3.1.

Во многих справочниках есть табличная часть "Дополнительные реквизиты" и назначены характеристики. Почему недоступны все эти справочники при добавлении дополнительных реквизитов?
---
Посмотрите предопределенные элементы справочника НаборыДополнительныхРеквизитовИСведений, тама всё написано...
---
Потому что гладиолус на всё воля...разработчика...
---
Я не могу в конфигураторе найти, где отбор идёт в динамическом списке.
---
Вопрос непонятен... В конфигураторе динамический список может настраиваться по разному, вплоть до полной замены запроса динамического списка при открытии формы этого списка в обработчике ПриСозданииНаСервере, например, да может и ещё много где...
Чтобы ответить на вопрос нужно, как минимум. понимать задачу - чего собственно Вы хотите добиться, что получить?
---
Хочу найти причину (место определения), почему одни справочники доступны в списке назначения реквизитов, другие нет.
---
У справочников с дополнительными реквизитами есть табличная часть "ДополнительныеРеквизиты".
В конфигураторе - наберите в строке поиска и увидите все справочники для которых доступны доп.реквизиты.
---
Посмотрите предопределенные элементы справочника НаборыДополнительныхРеквизитовИСведений, тама всё написано...
---
Спасибо за наводку, нашла, что искала в справочнике НаборыДополнительныхРеквизитовИСведений.
---
Вот это полезная инфа)
В СКД есть группировки:
ГруппаКонтрагентов
Контрагент

"Поле1" по группировке считается как "ресурс 2"/ "ресурс 1"*100.
Как сделать так ,чтобы "поле 1" считался также по группировке "ГруппаКонтрагентов"?
Сумма(Поле 1) просто складывает, максимум берет максимум поле 1 из группировки "Контрагент"
---
формулу писать нужно не в вычисляемом поле. точнее не только в вычисляемом поле.

выражение ресурса для Поле1 должно быть = 100 * Сумма(Ресурс2) / Сумма(Ресурс1)
---
ДОЛЖЕН СЧИТАТЬСЯ ТАК
---
формулу писать нужно не в вычисляемом поле. точнее не только в вычисляемом поле.

выражение ресурса для Поле1 должно быть = 100 * Сумма(Ресурс2) / Сумма(Ресурс1)
---
спасибо
У нас стоит старая добрая УПП 1.3. Движок платформы 8.3.15 и не так давно убрал режим совместимости в свойствах конфигурации.
Давно смотрел я в сторону расширений конфигурации и останавливал себя тем, что это всё для управляемых форм. Но тут вчитался в описание и не нашел прямого отсыла, что на обычных формах это не работает. А мне как раз некоторые стандартные отчеты и обработочки при обновлении конфигурации приходится корректировать под свои потребности. Ну вот жеж оно! Место применения расширения конфигурации.
И вот я что-то не пойму... В описании 1с в разделе Расширение конфигурации сказано:

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

```1c
    ЗначениеПараметра = ЭтотОбъект.КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных ("Период"));
    Если ЗначениеПараметра <> Неопределено Тогда

    Если НЕ ЗначениеЗаполнено(ЗначениеПараметра.Значение.ДатаОкончания) или НЕ НачалоДня(НачалоМесяца(ТекущаяДата()))<ЗначениеПараметра.Значение.ДатаНачала
    или ЗначениеПараметра.Значение.ДатаОкончания>КонецДня(КонецМесяца(ТекущаяДата())) Тогда

    ЗначениеПараметра.Значение.ДатаНачала = НачалоДня(НачалоМесяца(ТекущаяДата()));

    ЗначениеПараметра.Значение.ДатаОкончания = КонецДня(КонецМесяца(ТекущаяДата()));
    Сообщить("Просмотр данных разрешен только за текущий месяц!!!");
    КонецЕсли;

    ЗначениеПараметра.Использование = Истина;

    КонецЕсли;
```
---
вроде запретить выбор нельзя, а вот вернуть после выбора пользователя в нужное вам значение можно
---
все таки сделала вот так. В процедуре при компановке результата

```1c
    ЗначениеПараметра = ЭтотОбъект.КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных ("Период"));
    Если ЗначениеПараметра <> Неопределено Тогда

    Если НЕ ЗначениеЗаполнено(ЗначениеПараметра.Значение.ДатаОкончания) или НЕ НачалоДня(НачалоМесяца(ТекущаяДата()))<ЗначениеПараметра.Значение.ДатаНачала
    или ЗначениеПараметра.Значение.ДатаОкончания>КонецДня(КонецМесяца(ТекущаяДата())) Тогда

    ЗначениеПараметра.Значение.ДатаНачала = НачалоДня(НачалоМесяца(ТекущаяДата()));

    ЗначениеПараметра.Значение.ДатаОкончания = КонецДня(КонецМесяца(ТекущаяДата()));
    Сообщить("Просмотр данных разрешен только за текущий месяц!!!");
    КонецЕсли;

    ЗначениеПараметра.Использование = Истина;

    КонецЕсли;
```