arefaste/1C_Forums huggingface dataset:
Подскажите, кто в курсе. Платформа 8.3.10.2580. Конфигурация, похоже, не важна. Ранее, еще до эры Управляемых Форм в обычных формах обработок были функции (пример) : СохранитьЗначение(“ДатаНачалаСохр”, ДатаНачала); а при очередном запуске обработки: ДатаНачала = ВосстановитьЗначение(“ДатаНачалаСохр”), что позволяло клиенту не повторять первичное заполнение части полей формы, при неоднократном вызове обработки с этой формой. Речь идет о простейших данных : дата, число, флажок, строка… Как этот вопрос рекомендуется решать в свете «Управляемых форм» ? Если можно, простейший пример. Очевидные проверки, можно опустить.
---
У УФ есть штатный механизм платформы. В свойствах формы надо поставить АвтоматическоеСохранениеДанныхВНастройках = Использовать, и после этого в окне реквизитов формы станет доступно установка галок для отметки тех реквизитов, значения которых надо сохранить.

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

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

Как поступаете вы? Поделитесь опытом, пож.

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

Установка параметра для динамического списка, если он был уже задан в запросе:

```1c
    ПараметрыДС = <ИмяРеквизитаДинамическийСписок>.Параметры.Элементы.Найти("<ИмяПараметра>");
    ПараметрыДС .Значение = <ЗначениеПараметра>;
    ПараметрыДС .Использование = Истина;
```
---
А зачем?
---
Хочу отображать в комплектации табличную часть колесные диски из документа Ввод начальных данных
Добрый день! У меня на форму выведена команда объекта(задачи), мне необходимо управлять ее видимостью. Как мне из формы этого объекта обратиться к его команде?
---
если под командой вы подразумеваете кнопку на форме, то:

```1c
    Элементы.ИмяКоманды.Видимость = Ложь;
```
---
Элементы.ВашаКнопка.Видимость = Ложь;
---
если под командой вы подразумеваете кнопку на форме, то:

```1c
    Элементы.ИмяКоманды.Видимость = Ложь;
```
---
(3)
Спасибо!
---
Элементы.ВашаКнопка.Видимость = Ложь;
Получается только во всех должностях сделать поле не активным.
Скриншот:
https://yadi.sk/i/T-vIWYXZ3UfPYp
---
Привет. Смотри.
У тебя запрос всегда возвращает Истину, так не надо. Проверяй запрос на
```1c
    Запрос.Выполнить().Пустой()
```

Если пустой, тогда истина (редактировать можно)
Если не пустой, тогда редактировать нельзя.

и при открытии пропиши

```1c
    ЭлементыФормы.ВзимаютсяВзносыЗаЗанятыхНаРаботахСДосрочнойПенсией.Доступность = НеРаботаютНаДолжности();
```
---
Что то типо того что я написал выше .
---
и как правило сидит Бух и долбит справочник, потому что зайти не может в него, и вызывает программиста так как не работает программа у неё, а все потому что, кто то не вывел сообщение "справочник занят идите в опу" и бух уже бы не возмущалась
---
```1c
    Функция РаботаютНаДолжности()

    //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | РаботникиОрганизацийСрезПоследних.Должность
    |ИЗ
    | РегистрСведений.РаботникиОрганизаций.СрезПоследних КАК РаботникиОрганизацийСрезПоследних
    |ГДЕ
    | РаботникиОрганизацийСрезПоследних.Должность = &Должность";

    Запрос.УстановитьПараметр("Должность", Должность);

    Выборка = Запрос.Выполнить().Выбрать();

    Возврат Истина;

    КонецФункции
```
---
Процедура ПриОткрытии()

 Если РаботаютНаДолжности() Тогда
  ЭлементыФормы.ВзимаютсяВзносыЗаЗанятыхНаРаботахСДосрочнойПенсией.Доступность = Ложь;
  КонецЕсли;

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

И вот еще кусок Кода
---
Ошибка таится где то рядом
---
То есть по факту в новой должности поле должно быть активно.
---
Привет. Смотри.
У тебя запрос всегда возвращает Истину, так не надо. Проверяй запрос на
```1c
    Запрос.Выполнить().Пустой()
```

Если пустой, тогда истина (редактировать можно)
Если не пустой, тогда редактировать нельзя.

и при открытии пропиши

```1c
    ЭлементыФормы.ВзимаютсяВзносыЗаЗанятыхНаРаботахСДосрочнойПенсией.Доступность = НеРаботаютНаДолжности();
```
---
Не вышло)
---
так на оборот. Истина возвращается если не работает. Поменяй)
---
Если местами поменять получаются во всех должностях поде активно.
---
Постоянно с этими запросами беда
---
Отбой мой косяк все заработало)
---
Результат и выборка вообще были лишними
---
```1c
    Функция РаботаютНаДолжности(ЭтаФорма)

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | РаботникиОрганизацийСрезПоследних.Должность
    |ИЗ
    | РегистрСведений.РаботникиОрганизаций.СрезПоследних КАК РаботникиОрганизацийСрезПоследних
    |ГДЕ
    | РаботникиОрганизацийСрезПоследних.Должность = &Должность";

    Запрос.УстановитьПараметр("Должность", ЭтаФорма.Ссылка);

    Если Запрос.Выполнить().Пустой() Тогда
    Возврат Истина;
    Иначе
    Возврат Ложь;
    КонецЕсли;

    КонецФункции
```

Вот конечный результат.
код: ТекСтр = НаПереоценку.Добавить();

результата нет

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

это у тебя что, обработка заполнения ?
Это ты добавил строку, но ее еще заполнить надо
ТекСтр.Номенклатура = СсылкаНом;
и т.д.

а дучше использовать ЗаполнитьЗначенияСвойств - но при этом выборка какая то должна быть
---
это ПроверитьТабличныеЧастиПострочно(), которая вызывается из ОбработкаПроведения()

код заполнения есть. просто я его не привел здесь.
---
в обработке проведения уже поздно добавлять что то в документ, изменения не сохранятся(если правда не на форме и нужно 2 раза провести)))), перенеси лучше в перед записью и будет тебе счастье.
Есть доработанная конфигурация ЗУП 2.5. Изменения не откомментированы. Как эффективно сравнить тексты запросов: около 300 строк? Сравнение конфигураций выделяет целиком весь текст как изменённый.
---
ПКМ на запрос, в конструкторе выделяете текст запроса, копируете в текстовый документ, сравниваете.
---
Файл-Сравнить файлы
---
Выделяется целиком весь текст запроса, а не отличающиеся строки.
---
нет
---
ПКМ на запрос, в конструкторе выделяете текст запроса, копируете в текстовый документ, сравниваете.
---
выгрузить в тексты, взять виндифф
---
Использую "Compare It!", платная, но показывает в очень удобной форме.
---
Можно не выгружать, а подключить в параметрах Сравнение Объединение внешние программы, какие понравились :)
Доброго времени. Есть документ, у него в табличной части есть поле услуга и оценка. В одном документе строго идут услуги из конкретной группы, а вот оценка идет перечислением, два значения "Соответствует" и "Не соответствует". Мне нужно вытягивать данные и группировать их по документу, типа ДатаДокумента - НомерДокумента - ВладелецУслуг - Оценка, но если по дате, номеру и владельцу можно сгруппировать в запросе, то вот с оценкой проблема, дело в том, что если хотя бы в какой то строке есть оценка "Не соответствует", то она должна выходить для всего документа. Соответственно, если во всех строках стоит "соответствует", тогда общая оценка по документу должна быть "соответствует". Вопрос: можно ли такое условие реализовать в запросе?

Для более-менее понятного восприятия - скидываю скрин
---
для ресурса Оценка - рассчитывать по Документ, указать максимум/минимум в зависимости от расположения в перечислении.
---
для ресурса Оценка - рассчитывать по Документ, указать максимум/минимум в зависимости от расположения в перечислении.
---
интересная мысль, спасибо, попробую
---
Если не получится, можно количество различных посчитать, и + максимум/минимум гарантированно даст то, что нужно.
---
Спасибо. Оказывается все просто.
Доброго времени. Не могу понять, как задать правильно связи параметров.
Есть справочник Объекты обслуживание, у него есть подчиненный справочник Виды обслуживания, а у него в свою очередь есть подчиненный справочник Содержание обслуживания. Есть документ, где есть реквизит ОбъектОбслуживания с ссылкой на справочник, в табличной части есть реквизит СодержаниеОбслуживания. Как сделать так, чтобы при начале выбора содержание, справочник отбирался по Объекту обслуживания? Пробовал через связи параметров выбора, указывал отбор по реквизиту Объект, но не работает. Ручками хотел указать через структуру, но не могу понять, как задать ключ типа Владелец.Владелец.
---
Сделал так:

```1c
    ОтбораВладельца = Новый Структура;
    ОтбораВладельца.Вставить("Владелец", Объект.ОбъектОбслуживания);

    ПараметрыОтбора = Новый Структура;
    ПараметрыОтбора.Вставить("Владелец", ОтборВладельца);

    ПараметрыФормы = Новый Структура;
    ПараметрыФормы.Вставить("Отбор", ПараметрыОтбора);

    ОткрытьФорму("Справочник.Содержания.ФормаВыбора", ПараметрыФормы, Элемент);
```

Работает. Но правильно ли это?
---
Сделал так:

```1c
    ОтбораВладельца = Новый Структура;
    ОтбораВладельца.Вставить("Владелец", Объект.ОбъектОбслуживания);

    ПараметрыОтбора = Новый Структура;
    ПараметрыОтбора.Вставить("Владелец", ОтборВладельца);

    ПараметрыФормы = Новый Структура;
    ПараметрыФормы.Вставить("Отбор", ПараметрыОтбора);

    ОткрытьФорму("Справочник.Содержания.ФормаВыбора", ПараметрыФормы, Элемент);
```

Работает. Но правильно ли это?
Приветствую! Подскажите такой момент. Надо реализовать фоновое задание, которое будет ходить на определенный сайт. Надо запоминать дату посещения сайта, подставлять ее в параметр, обрабатывать данные, потом запоминать новую дату. Ума не приложу как сделать хранение этой даты. Есть мысль под нее регистр сведений завести, но смысла в этом нет. Есть ли способ такое сделать через хранилище значений?
---
Есть ли способ такое сделать через хранилище значений?
а хранилище значения само по себе что ли и находится где-то отдельно от базы?

Ума не приложу как сделать хранение этой даты
А что тут прикладывать? Ну храни в константе, если в регистре не хочешь
---
Есть ли способ такое сделать через хранилище значений?
а хранилище значения само по себе что ли и находится где-то отдельно от базы?

Ума не приложу как сделать хранение этой даты
А что тут прикладывать? Ну храни в константе, если в регистре не хочешь
---
Я не совсем понимаю как ее прочитать из хранилища в самом начале, еотому как хранилище еще не создано.
---
Константа - вариант, кстати....
Добрый день, подскажите как выкрутится из ситуации:
УТ 10, 3 организации, когда заводили базу, индексы организации не проставили, спустя пол года-год потребовалось проставить индексы, может можно как нибудь проставить индексы уже существующим документам? обработку искал, не нашел :(
---
обработку искал, не нашел :( Может, потому не нашли, что для для этого не нужна какая-то специальная обработка, а подойдет типовая "Универсальный подбор и обработка объектов", вот пошаговая инструкция с картинками: https://infostart.ru/public/365545/
---
обработку искал, не нашел :( Может, потому не нашли, что для для этого не нужна какая-то специальная обработка, а подойдет типовая "Универсальный подбор и обработка объектов", вот пошаговая инструкция с картинками: https://infostart.ru/public/365545/
---
спасибо великодушно!
---
Может речь про префиксы в номерах документов?
---
точно! префиксы!
---
а какая есть обработка в составе конфигурации (в меню Сервис)?

Групповая обработка справочников и документов есть? Там есть перенумерация среди доступных действий над объектами?

Хотя и обработку универсального подбора...можно найти везде
День добрый. Есть строковый реквизит в документах. Они такого содержания:
Авто красная хонда ТМП 76575757

надо после слова ТМП получить значение, т.е. "76575757"
Вопрос: какая функция в 1С в этом поможет?
---
Используйте СтрРазделить, указав пробел как разделитель. Последний элемент получившегося массива и будет ваш номер.
---
Используйте СтрРазделить, указав пробел как разделитель. Последний элемент получившегося массива и будет ваш номер.
---
Спасибо!
---
ПолучитьТолькоЦифрыИзСтроки

есть такая или похожая в общих модулях
---
из общих модулей УТ

```1c
    Функция ОставитьВСтрокеТолькоЦифры(ИсходнаяСтрока) Экспорт

    СтрокаРезультат = ";

    Для а = 1 По СтрДлина(ИсходнаяСтрока) Цикл
    ТекущийСимвол = Сред(ИсходнаяСтрока, а, 1);
    КодСимвола = КодСимвола(ТекущийСимвол);
    Если КодСимвола >= 48 И КодСимвола <= 57 Тогда
    СтрокаРезультат = СтрокаРезультат + ТекущийСимвол;
    КонецЕсли;
    КонецЦикла;

    Возврат СтрокаРезультат;

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

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | ДанныеСотрудников.Подразделение,
    | ДанныеСотрудников.Должность
    |ИЗ
    | РегистрСведений.ДанныеСотрудников КАК ДанныеСотрудников
    |ГДЕ
    | ДанныеСотрудников.Сотрудник = &Наименование";

    Запрос.УстановитьПараметр("Наименование", Значение);

    Выборка = Запрос.Выполнить().Выбрать();

    Если Выборка.Следующий() Тогда
    Должность = Выборка.Должность;
    Подразделение = Выборка.Подразделение;
    КонецЕсли;
    КонецПроцедуры
```

В табличной части справочника три реквизита. Сотрудник, Должность и Подразделение. ПриИзменении Сотрудника нужно заполнить Должность и Подразделение
---
```1c
    ТекущиеДанные = Элементы.ТабличнаяЧасть.ТекущиеДанные;
```

А уже в запрос передавать ТекущиеДанные.Сотрудник.
На выходе в цикле:

```1c
    ТекущиеДанные.Должность = Выборка.Должность;
    ТекущиеДанные.Подразделение = Выборка.Подразделение
```
 ;
---
```1c
    ТекущиеДанные = Элементы.ТабличнаяЧасть.ТекущиеДанные;
```

А уже в запрос передавать ТекущиеДанные.Сотрудник.
На выходе в цикле:

```1c
    ТекущиеДанные.Должность = Выборка.Должность;
    ТекущиеДанные.Подразделение = Выборка.Подразделение
```
 ;
---
Переменная не определена (Элементы)
ТекущиеДанные = <<?>>Элементы.ТабличнаяЧасть.ТекущиеДанные; (Проверка: Толстый клиент (обычное приложение))

ЭлементыФормы)
Здравствуйте!

Управление торговли 11.1 (старая версия)

Создал ВПФ ТОРГ-12 для Возврата поставщику для не проведенных документов
Работает через Файл - Открыть, если подгружать в базу, то работает только для проведенных документов.

Подскажите, пожалуйста, что можно исправить в ней?

Заранее спасибо!
---
поправьте процедуру СведенияОВнешнейОбработке() , а то может и не ваша вовсе печатается

```1c
    ДобавитьКоманду(ТаблицаКоманд,
    "ТОРГ-12 (Товарная накладная) для Возврата", // Представление команды в пользовательском интерфейсе
    "Торг12ВозвратТовара", // Уникальный идентификатор команды
    );
```

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

```1c
    ДобавитьКоманду(ТаблицаКоманд,
    "ТОРГ-12 (Товарная накладная) для Возврата", // Представление команды в пользовательском интерфейсе
    "Торг12ВозвратТовара", // Уникальный идентификатор команды
    );
```

имя и синоним обработки отличаются от этого.
---
да, как раз в этом и нашел ошибку, спасибо!