arefaste/1C_Forums huggingface dataset:
Добрый день, друзья!
Помогите правильно нарисовать запрос.

Есть два документа (Поступление и реализация)

Запросом получаю данные и объединяю (По номенклатуре)

Пытаюсь вывести в виде дерево и тут что то не получается:

  -> Организация
  -> -> Период (Вот тут либо дату одного либо дату другого документа подтягивается)
  -> -> -> Номенклатура

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

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

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    Приход.Номенклатура КАК Номенклатура,
    Приход.Организация КАК Организация,
    Реализация.Период КАК Период,
    Приход.КоличествоПриход КАК КоличествоПриход,
    Реализация.КоличествоРасход КАК КоличествоРасход
    ИЗ
    Приход КАК Приход
    ПОЛНОЕ СОЕДИНЕНИЕ Реализация КАК Реализация
    ПО (Приход.Номенклатура = Реализация.Номенклатура)
```
---
вместо соединения таблиц используйте объединение
---
Спасибо!
(7)
(6)
---
объединить все и просуммировать приход/расход
Добрый день друзья. Выполнял задачу по переносу расчетных данных из УПП в ЗУП актуальных релизов с помощью КД2. Некорректно перенеслись данные для справочника "Графики работы сотрудников" - а их почти 700 шт. В итоге нужно зайти в каждый график и выполнить типовую команду "Заполнить". Решил для этого написать обработку, ну и видимо где-то допустил ошибку.

Здесь все ок. Получаем ссылки на графики в ТЧ обработки:

```1c
    &НаКлиенте
    Процедура ЗаполнитьТЧ()

    ПолучитьДанныеНаСервере();

    КонецПроцедуры // ЗаполнитьТЧ()

    &НаСервере
    Процедура ПолучитьДанныеНаСервере()

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | ГрафикиРаботыСотрудников.Наименование КАК Наименование,
    | ГрафикиРаботыСотрудников.Ссылка КАК Ссылка,
    | ГрафикиРаботыСотрудников.Представление КАК Представление
    |ПОМЕСТИТЬ втГрафики
    |ИЗ
    | Справочник.ГрафикиРаботыСотрудников КАК ГрафикиРаботыСотрудников
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | втГрафики.Наименование КАК Наименование,
    | втГрафики.Ссылка КАК Ссылка,
    | втГрафики.Представление КАК Представление
    |ИЗ
    | втГрафики КАК втГрафики";

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

    Пока Результат.Следующий() Цикл

    НоваяСтрока = Объект.ТЧ.Добавить();
    НоваяСтрока.Наименование = Результат.Ссылка;

    КонецЦикла;
    КонецПроцедуры
```

А вот здесь пытаюсь заполнить графики программно. Под капотом что-то происходит, но на выходе графики не заполнены:

```1c
    &НаКлиенте
    Процедура ЗаполнитьГрафики(Команда)

    Для каждого Строка Из Объект.ТЧ Цикл
    Форма = Объект.ТЧ[0].Наименование.ПолучитьФорму();
    Форма.Прочитать();
    Форма.Заполнить(Команда); //Процедура модуля формы справочника //
    Форма.Записать();
    КонецЦикла;

    КонецПроцедуры
```
---
Так ты только первую строку всегда заполняешь миллион раз... Чего ж ты хотел?
---
Что если создавать или получать объект элемент справочника, а потом вызывать процедуры, которые вызываются в форме по кнопке "Заполнить", ну и записывать потом объект.
---
Так ты только первую строку всегда заполняешь миллион раз... Чего ж ты хотел?
Добрый день, форумчане! Дело такое:

При выгрузке прайс-листа наименования товара должно браться обычное наименование, а не наименование для печати. Все прелопатил - никак не найду. Конфигурация УТ 11.4
---
Наконец-то нашел, оно находилось тут:

Документ установка цен номенклатура модуль менеджера процедура "СформироватьПечатнуюФормуУстановкиЦенНоменклатуры"
---
Наконец-то нашел, оно находилось тут:

Документ установка цен номенклатура модуль менеджера процедура "СформироватьПечатнуюФормуУстановкиЦенНоменклатуры"
УТ11. В расширении добавил отчет, его форму и макет. В форме добавил команду и перетащил на элементы формы. На форме в конфигураторе она есть, а при запуске в режим Предприятие кнопки нет. В самом отчете поставил стандартные настройки. Подскажите пожалуйста, в чем причина, почему не выводится кнопка?Ниже скрины
---
На скриншотах разные формы.
---
А в самом расширении какие флажки стоят? Иногда бывает клиентский кэш, из-за которого не видно изменений.
---
Вы про эти имеете ввиду?
---
На скриншотах разные формы.
---
Вопрос решил, Вы были правы, кнопку нужно было вытащить не на эту форму в отчете, а на ОбщаяФорма.ФормаОтчета. Благодарю!)
Есть "1С:Комплексная автоматизация 2" релиз 2.2.4.103, платформа 8.3.10.2580.

Из модуля обработки идет вызов экспортной процедуры ЗаполнитьУсловияПродажПоCоглашению() модуля документа АктВыполненыхРабот.
При этом возникает ошибка "Метод объекта не обнаружен". Процедура ЗаполнитьУсловияПродажПоCоглашению() с "волшебным" словом Экспорт в модуле документа АктВыполненыхРабот есть. Оба модуля (модуль обработки и модуль документа) выполняются на сервере. Смотрите вложенные файлы. Тогда почему возникла ошибка? Это я что-то неправильно написал или чего-то не понимаю? Или это ошибка платформы 1С? Какие есть идеи как исправить или обойти?

Ошибка возникает как в файловой, так и в серверной версиях. Ошибка возникла после перехода в июле 2017 года на версию платформы 8.3.10. До этого код обработки функционировал без сбоя почти год. Вернуться на предыдущую версию платформы - уже нельзя. На тестовой версии 8.3.11 ошибка также имеет место быть.

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

В модуле менеджера Документ.АктВыполненыхРабот добавил:

```1c
    // Квант ***
    Процедура Квант_ЗаполнитьУсловияПродажПоСоглашению(Объект) Экспорт
    Объект.ЗаполнитьУсловияПродажПоСоглашению();
    КонецПроцедуры
    // *** Квант
```

В модуле обработки заменил строку

```1c
    // Акт.ЗаполнитьУсловияПродажПоCоглашению();
```

на

```1c
    Документы.АктВыполненныхРабот.Квант_ЗаполнитьУсловияПродажПоСоглашению(Акт);
```

На тестовой базе пока работает. Сейчас проверяю на рабочей... Проверил вроде работает.

P.S. Это уже наверно моя четвертая попытка переписать модуль обработки, так чтобы обойти ошибку "Модуль объекта не обнаружен". Все-таки Акт.ЗаполнитьУсловияПродажПоCоглашению() - должно работать в данном контексте и работало почти год(!) до перехода на платформу 8.3.10
---
Чтобы вызвать модульную процедуру нужно получить объект или его создать, без объекта только вызвать из менеджера объекта...
---
Переменная Акт имеет тип ДокументОбъект.АктВыполненыхРабот ( в отладчике это видно) и была создана командой Акт=Документы.АктВыполненныхРабот.СоздатьДокумент(); на 8 строчек раньше сбойной строки.
---
зови менеджера, ответили же уже 3 раза
---
Это в принципе не может быть вариантом решения проблемы.
---
Ну судя по коду выскажу ещё предположение что выполняется модуль на тонком клиенте
Ну и предыдущий пост правильный
---
А разве возможна ситуация, когда модуль обработки (модуль объекта) выполняется на клиенте? Мне казалось, что модуль обработки всегда выполняется на сервере...
---
Так у него на третьем слайде идет выборка запроса она может выполнятся только на сервере. следовательно он пытается подключится к модулю объекта на сервере.
(6)
ТЗ = Запрос.Выполнить().Выгрузить();

 ПараметрыОтбораНал = Новый Структура("ТипОплаты", "Наличные");

 ТЗНал = ТЗ.НайтиСтроки(ПараметрыОтбораНал);

 Для каждого НайденныеСтроки из ТЗНал цикл
   ТЗ.Удалить(НайденныеСтроки);
 КонецЦикла;

       Делю ТЗ на ТЗНал(Строки с типом оплаты наличные), из ТЗ удаляю строки ТЗНал, в ТЗ остаются остальные строки

      Потом я обе эти ТЗ использую для заполнения разных ТЧ документов и в итоге при заполнении, ТЗНал остается пустой(Хотя ранее она заполнена)

ps. Ошибка: Выполнение операции невозможно, т.к. строка была удалена.
---
Метод найти строки возвращает массив строк оригинальной таблицы значений, поэтому, когда вы удаляете их из ТЗ, в массиве остаются ссылки на несуществующие строки. Такой вариант должен подойти:
```1c
    ПараметрыОтбораНал = Новый Структура("ТипОплаты", "Наличные");

    МассивСтрокНал = ТЗ.НайтиСтроки(ПараметрыОтбораНал);

    ТЗНал = ТЗ.Скопировать(МассивСтрокНал);

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

    МассивСтрокНал = ТЗ.НайтиСтроки(ПараметрыОтбораНал);

    ТЗНал = ТЗ.Скопировать(МассивСтрокНал);

    Для Каждого Стр Из МассивСтрокНал Цикл
    ТЗ.Удалить(Стр);
    КонецЦикла;
```
---
Спасибо!
---
Просто скопируйте таблицу значений, в ней ищите - а так получается вы в этой же таблице удаляете.
---
из разряда пилить сук на котором сидишь. Из вариантов могу предложить попробовать в первом цикле нужные строки закинуть в новый массив, а потом перебором его удалять.
Здравствуйте, подскажите в справочнике номенклатура есть табличная часть, вывел ее в форму группы для справочника. Заполняю, записываю. Не сохраняется. В перед записью на сервере смотрел в форме есть а в текущийОбъект нет этих данных понятно. Пробовал в текущем объекте заполнить ТЧ из формы, пишет объект не доступен для изменения. Хотя вроде именно текущийОбъект и содержит СправочникОбъект и на данном этапе изменения через него должны вноситься. Не пойму что делаю не так. Табличная часть нужна, там строки добавляются в зависимости от количества выбранных языков, для дублирования на других языках.
---
В свойствах табличной части укажите Использование "Для группы и элемента".
---
В свойствах табличной части укажите Использование "Для группы и элемента".
---
Спасибо огромное
помогите пожалуйста 1С:колхознику:
в БК30(бухгалтерия Казахстана) в платежном поручении входящем в ТЧ расшифровка платежа есть реквизит СДЕЛКА (синоним документ расчетов), и
 он недоступен для редактирования, я простучал обработчики ПриСозданииНаСервере(), ПриОткрытии() доступность реквизита = Истина
в конфигураторе на форме документа реквизит доступен

куда еще копать, чтобы таки дать редактировать этот реквизит?

прилагаю скриншот отладчика на выходе из ПриОткрытии()
---
еще может быть установлено УО.
---
Добрый день. Как вам уже писали доступность управляется через условное оформление формы.
---
проверить обработчики подключенные к этому полю и к таблице. Вполне возможно там происходит проверка (к примеру в обработчике НачалоВыбора) и не пропускает дальше.
---
Добрый день. Как вам уже писали доступность управляется через условное оформление формы.
---
В режиме предприятия при двойном клике по полю реквизита ничего не происходит, типо недоступен
---
щас проверю
---
закомментил:
&НаКлиенте
Процедура РасшифровкаПлатежаСделкаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
 Возврат; // mask
---
раскомментировать и поставить точку остановку внутри. Происходит остановка в данном месте?
И Недоступен для изменения, или при добавлении тоже?
---
не помогло
---
еще может быть установлено УО.
---
и всякие там расширения...
---
Расшифруйте пожалуйста УО
---
Условное Оформление
---
Скорей всего у вас этот реквизит привязан к функциональной опции, которая выключена. Вести учет по сделкам или что-то вроде этого. Выберите свойства реквизита и зайдите на вкладку "функциональные опции", думаю проблема именно в этом.
---
Условное оформление влияет только на отображение, и не затрагивает доступность
(10) Расширений нет, это просто типовая конфигурация
---
попробую проверить вашу гипотезу
---
у меня реквизит ТЧ документа, а функциональные опции оперируют с документами, справочниками но не отдельным реквизитом
---
Чую, вы таки правы, пока копаюсь
---
Может в правах на документ есть ограничения доступа к данным?
---
добавил реквизит в функциональные опции подобно ДоговорКонтрагента - не помогло :(
---
добавил реквизит в функциональные опции подобно ДоговорКонтрагента - не помогло
а что должно было помочь?
Функциональные опции отвечают за включение или выключение реквизита в режиме предприятия. Т.е. или он есть, или его вообще нет. На доступность никак не должны влиять.
---
погляжу
---
не останавливается, точнее даже не заходит
---
что делать с этим монстром?
---
это для rls. Ограничение доступности данных при получении из базы. К Доступности реквизита не имеют отношения.
---
снес в копии шаблоны - не помогло
(23) смотрю
---
Скрин я приложил из релиза "Бухгалтерия для Казахстана, редакция 3.0, разработка для Казахстана: «1С-Рейтинг» (3.0.39.1)", но не думаю что там что-то меняется часто.
---
Вы под полными правами не видите реквизит?
---
Попробуйте еще посмотреть права в свойствах реквизита "Пользовательская видимость".
---
И еще вы в отладке смотрите доступность, а посмотрите видимость - может там ложь и вся проблема в этом.
---
спасибо ВСЕМ за помощь!, и особенно: (7) и (23) !!!
Добрый день,
Платформа 8.3.19, конфигурация УТ11.4. Пробовал и на других платформах, там такая же ситуация.

У меня есть расширение, в котором заимствована и доработана форма типовой обработки.
Я хочу выяснить, какие были внесены изменения в эту форму в расширении, для этого сделал второе расширение, в которое просто заимствовал типовую форму, ничего больше с формой не делал.

Итого есть два расширения, которые заимствуют одну и ту же типовую форму, в одном расширении в форму внесены изменения, в другом - нет.

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

Кто-нибудь знает, что означает ветка "Сохраненная форма" в отчёте?
---
Сохранённая форма это то, с чем сравнивается форма из расширения, чтобы платформа понимала, как форма в расширении изменилась относительно формы из конфигурации, какие элементы добавить, какие удалить, какие свойства изменить. Даже если форма в основной конфигурации изменится (после обновления), сохранённая форма останется старой до тех пор, пока разработчик не обновит ёё вручную (на самой форме в расширении сверху появляются кнопки для этого).

Например, если хочется сделать форму в расширении максимально независимой от обновления, можно выгрузить конфигурацию в xml-файлы, удалить почти все элементы из веток "Form" и "BaseForm" (главное, чтобы он остались одинаковыми по структуре), и загрузить конфигурацию обратно. После этого форма в расширении будет пустая и платформа не будет считать, что нужно удалять какие-то элементы. Теперь можно все изменения делать исключительно кодом.
---
Первое правило - никогда не заимствовать одну форму в несколько расширений. Именно структуру формы.
С модулями может и прокатить... А вот со структурой элементов - вряд ли.
Рисуйте динамически.
---
Сохранённая форма это то, с чем сравнивается форма из расширения, чтобы платформа понимала, как форма в расширении изменилась относительно формы из конфигурации, какие элементы добавить, какие удалить, какие свойства изменить. Даже если форма в основной конфигурации изменится (после обновления), сохранённая форма останется старой до тех пор, пока разработчик не обновит ёё вручную (на самой форме в расширении сверху появляются кнопки для этого).

Например, если хочется сделать форму в расширении максимально независимой от обновления, можно выгрузить конфигурацию в xml-файлы, удалить почти все элементы из веток "Form" и "BaseForm" (главное, чтобы он остались одинаковыми по структуре), и загрузить конфигурацию обратно. После этого форма в расширении будет пустая и платформа не будет считать, что нужно удалять какие-то элементы. Теперь можно все изменения делать исключительно кодом.
Добрый день!
Есть форма со списком документов. Эта форма открывается модально. Задача такая, что пользователю открывается первая форма, там список документов. И пользователь смотрит это список, открывает некоторые документы для просмотра и меняет там определенные параметры. И может быть так, что он поменяет параметры по которым эти документы отображаются в первой форме. И вот надо сделать так, чтобы если этот документ уже изменен и не должен отображаться в первой форме этот документ там не отображался.
Как это можно сделать?
---
Добавить оповещение в обработчик "ПослеЗаписи" формы документа и обработку этого оповещения в "ОбработкаОповещения" формы списка документов.
---
https://www.google.com/search?q=%D0%9E%D0%B1%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%­B5+%D1%84%D0%BE%D1%80%D0%BC%D1%8B+%D0%B8%D0%B7+%D0%BA%D0%BE%­D1%82%D0%BE%D1%80%D0%BE%D0%B9+%D0%BE%D1%82%D0%BA%D1%80%D1%8B­%D0%B2%D0%B0%D0%B5%D1%82%D1%81%D1%8F+%D0%B2%D1%82%D0%BE%D1%8­0%D0%B0%D1%8F+%D1%84%D0%BE%D1%80%D0%BC%D0%B0
---
Добавить оповещение в обработчик "ПослеЗаписи" формы документа и обработку этого оповещения в "ОбработкаОповещения" формы списка документов.
---
Посмотрите процедуру ОповеститьОбИзменении.
Добрый день. извините за тупой вопрос, но я сама не могу найти ответ. В обычной форме создала отчет на СКД по аналогии с другим , который в базе существует (ЗУП 2,5 обычное приложение). Только надо было выводит к тому же и заголовок. Я заголовок выводу , но появились еще откуда-то "Дополнительные поля". Понятно, что это те полы , которые отчет и выводит, но мне не нужен этот перечень в верху отчета. А отключить его не могу - не нахожу за что зацепиться... Подскажите, пожалуйста...
---
Вот может так подойдет?
---
Дополнительные поля - это те поля которые не являются группировками или показателями отчета, построенного на основе типового отчета:

```1c
    Показатели = ПолучитьПоказатели(КомпоновщикНастроек);
    ДополнительныеПоля = ПолучитьДополнительныеПоля(КомпоновщикНастроек);

    СтрокаОтбор = Строка(КомпоновщикНастроек.Настройки.Отбор);
    ОписаниеНастроекОтчета =
    ОписаниеПериода +
    СформироватьСтрокуПолей(ТипСтрок, Строки) +
    СформироватьСтрокуПолей(ТипКолонок, Колонки) +
    СформироватьСтрокуПолей("Дополнительные поля", ДополнительныеПоля) +
    СформироватьСтрокуПолей("Показатели", Показатели) +
    ?(ПустаяСтрока(СтрокаОтбор) , ", "Отбор: " + СтрокаОтбор);
```
---
Сам отчет можете выложить?
А вот ссылка интересная с точки зрения вашего вопроса:
https://forum.infostart.ru/forum9/topic150089/
---
Возможно включена одна из галочек:
---
Извините, я только что увидела ваши сообщения. Буду пробовать... Спасибо за подсказки
---
Может так попробуйте: наоборот убрать вывод стандартного заголовка, а для своего заголовка сделать именованную группировку и для нее отдельный макет
---
Что то помогло?
---
Честно говоря, мне выдалась вот эта ошибка.... которую я ниже показала, но тут повторю
---
Это внешний отчет, который был создан из внутреннего , из типовой, которая на поддержке...
---
О, это Хьюмен, тут эти дополнительные поля вроде выводятся программно в общем модуле, ТиповыеОтчетыХС строка Процедура ВыводЗаголовкаТиповогоОтчета(...
---
О, благодарю...
потому что я попробовала через именованную группировку задать свой заголовок, но мне выдалась ошибка
---
Вот может так подойдет?
---
Спасибо, это подойдет
И вообще всем спасибо за помощь... Я , должно быть. сама где-то чего-то не учла, потому что еще мало таких заголовков делала. Знаю, что должно работать, а не выходит... "Дьявол прячется в деталях" :)
---
Еще в этой именованной группировке нужно внутри снять галочку в выбранных полях "<Авто>"
---
Я прошу прощения, но почему-то ко мне не сразу доходят ваши сообщения (это касается RustamZz, который всегда готов прийти на помощь)... хотела сказать, что я все вижу, если и не сражу отвечаю... :)
подскажите пожалуйста как выгрузить данные из ХранилищеЗначений в файл

```1c
    Процедура КнопкаВыполнитьНажатие(Кнопка)

    СсылкаНаДок.ДанныеОтчета.Получить().Записать("H:\хз.xlsx");

    Сообщить("Сохранено в файл");

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

    Процедура ОсновныеДействияФормыДействие(Кнопка)

    ДД = Новый ДвоичныеДанные(ИмяФайла);
    Хранилище = Новый ХранилищеЗначения(ДД);

    СпрОб = СсылкаНаДок.ПолучитьОбъект();
    СпрОб.ДанныеОтчета = Хранилище;
    СпрОб.Записать();

    Сообщить("Обновлено из файла");

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

выводит ошибку: Метод объекта не обнаружен (Записать)
---
Через ЗначениеВФайл можно.
---
А какого типа значение в хранилище? Вы отмотали вниз скрин, так что нам не видно тип у результата Получить().
---
Тип структура
---
Структуру нельзя записать в файл.
---
Через ЗначениеВФайл можно.
---
только это никак не поможет сохранить в нужном формате.
СсылкаНаДок.ДанныеОтчета.Получить().Записать("H:\хз.xlsx");
---
А задачу нужно между строк читать.
---
как раз между строк проглядывало сохранение в нужном формате.
Ну ничего, подождем следующей темы, как открыть файл с расширением xlsx, сохраненный таким способом.
---
привет подскажи пожалуйста как теперь обратно загрузить эти данные в реквизит с типом ХранилищеЗначений

```1c
    Процедура ОсновныеДействияФормыДействие(Кнопка)

    //ДД = Новый ДвоичныеДанные("H:\ХЗ.txt");
    //Хранилище = Новый ХранилищеЗначения(ДД);

    тЗначений = ЗначениеИзФайла("H:\ХЗ.txt");
    //тЗначений.ВыбратьСтроку();

    СпрОб = СсылкаНаДок.ПолучитьОбъект();
    СпрОб.ДанныеОтчета = тЗначений;
    СпрОб.Записать();

    Сообщить("Обновлено из файла");

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

так же да?
---
добавил

Хранилище = Новый ХранилищеЗначения(тЗначений);

СпрОб.ДанныеОтчета = Хранилище;
---
работает
---
выводит ошибку: Метод объекта не обнаружен (Записать)
естественно! надо проверять что получили из хранилища!

примерно так

```1c
    Процедура КнопкаВыполнитьНажатие(Кнопка)

    // СсылкаНаДок.ДанныеОтчета.Получить().Записать("H:\хз.xlsx");
    лкЗначение = СсылкаНаДок.ДанныеОтчета.Получить();
    Если ТипЗнч(лкЗначение) = ТИп("ТабличныйДокумент") Тогда
    лкЗначение.Записать("H:\хз.xlsx");
    Сообщить("Сохранено в файл");
    Иначе
    Сообщить("В хранилище не результат отчета! ");
    КоенцЕсли;

    КонецПроцедуры
```
---
Структура