arefaste/1C_Forums huggingface dataset:
Здравствуйте.

Программа 1с 8.2. Открываю конфигуратор, далее любой отчёт, модуль, можно ли как-то уменьшить шрифт модуля.

Спасибо.
---
Конфигуратор - Сервис - Параметры - Модули - Редактирование - Шрифт
---
Конфигуратор - Сервис - Параметры - Модули - Редактирование - Шрифт
---
Спасибо
Здравствуйте.
Возникла необходимость поработать с РИБ. До этого с ними никогда не работал, поэтому возник вопрос.
Есть необходимость внести некоторые изменения в конфигурацию.
Если я внесу изменения в центральной базе, как их перенести на распределенную?
---
по идее приехать с обменом должно само.
Остается только применить новую конфигурацию.
По крайней мере, типовые при обновлении так срабатывают. Только файл обмена пожирнее формируется, т.к. в нем конфа едет в периферию.

Можно еще по отдельности обновлять, но это каждую периферию отвязывать надо, обновлять, а потом привязывать, - но это, когда других вариантов нет.
---
по идее приехать с обменом должно само.
Остается только применить новую конфигурацию.
По крайней мере, типовые при обновлении так срабатывают. Только файл обмена пожирнее формируется, т.к. в нем конфа едет в периферию.

Можно еще по отдельности обновлять, но это каждую периферию отвязывать надо, обновлять, а потом привязывать, - но это, когда других вариантов нет.
---
(3)Спасибо
---
при обмене все обновится
1С 8.2, обычные формы. Нужно заполнять наименование справочника только утвержденными словами. Т.е. можно брать только словосочетания: "Договор отсрочки", "договор предоплаты" и т.д. Причем они должны быть выпадающим списком при наведении на поле Наименование.
Завожу новые Перечисления, значения перечисления добавляю в выпадающий список. Наименование записывается, все ок. Но нужно ограничение, что нельзя ввести с клавиатуры ничего. Пробую "РежимВыбораИзСписка" = истина, но тогда наименование остается, но почему-то строка на форме остается пустой.
Что можно сделать? (Думаю, что процедура ПриИзменении, но может можно где-то галку нажать...)
---
РедактированиеТекста = ложь
---
РедактированиеТекста = ложь
---
можно вообще
перехватить событие начало выбора, или начало выбора из списка.
Там стандартная обработка = Ложь.
формируем свой список значений, с нужными значениями.
и заканчиваем

```1c
    Результат = ВыбратьИзСписка(СписокЗначений, Элемент); // элемент тут, будет твой элемент формы возле которого список значений открываться будет
    Если Результат <> Неопределено Тогда
    .....колбасим значение в твой реквизит.
```
Добрый день!
Делаю свертку базы на начало 2017 года. В данный момент делается отбор документов до 2017. Уже целый день (база за 10 лет). А потом еще ставить пометки на удаление.
И не понятно, когда все закончится. Делаю на копии, конечно.
Можно ли дать уже все-таки работать людям, а потом все документы новые, которые они за этот период проведут перенести в свернутую базу?
---
а, кажется понял.
Ты хочешь на копии сделать свертку, а потом ее развернуть в качестве рабочей ?
тогда конечно, докинешь документы загрузкой-выгрузкой xml. Конфиги идентичные, проблем не будет. Правда, если они не только вводят но и исправляют условно вчерашние документы, то потом ты их не идентифицируешь.
А новые, без проблем, отбором отобрал - да перенес
---
а, кажется понял.
Ты хочешь на копии сделать свертку, а потом ее развернуть в качестве рабочей ?
тогда конечно, докинешь документы загрузкой-выгрузкой xml. Конфиги идентичные, проблем не будет. Правда, если они не только вводят но и исправляют условно вчерашние документы, то потом ты их не идентифицируешь.
А новые, без проблем, отбором отобрал - да перенес
---
в смысле, они еще делают документы (задним числом) в прошлом году ?
тогда какая же это сверка ? Там ведь будет срез остатков, взаиморасчетов..а если введут документы, то и срез этот не будет соответствовать действительности.
Сворачивают, то, что уже точно меняться не будет.
Часть документов ВедомостьНаВыплатуЗарплатыВБанк делают движения в РегистрНакопления.РасчетыНалогоплательщиковСБюджетомПоНДФЛ
по удержаноому ндфл устанавливая реквизит ВключатьВДекларациюПоНалогуНаПрибыль в Истину.
При этом дата КрайнийСрокУплаты автоматически устанавливается со сдвигом на месяц вперед. При этом не правильно формируется отчетность 6-НДФЛ.
Куда копать? Откуда берется эта настройка?
---
с этим все в порядке.
(3) не нашел такой настройки в актуальной ЗУП 3.1
Выяснил следующее. Когда-то давно в документе, если открыть "детальную" запись по сотруднику было такое поле. Потом это поле убрали из пользовательского режима, но не из конфигурации. И документы(табличная часть НДФЛ) остались с этим реквизитом. А бух делал последующие документы копированием старых. Так и тянулись "старички" по цепочке копирований. По новым сотрудникам все было нормально, что и сбивало с толку.
После ручной правки реквизита, все пришло в норму.
---
в настройке начисления (оклад например) есть признак, точно название помню "Включать в в базу по налогу на прибыль". Как-то так. Может вам это нужно.
---
если неправильно формируется 6-НДФЛ, то в первую очередь проверьте ведомости по выплате, не должны быть суммы объединенные по разным начислением, что порою грешат бухи, например отпуск+зарплата за месяц и т.п.
---
с этим все в порядке.
(3) не нашел такой настройки в актуальной ЗУП 3.1
Выяснил следующее. Когда-то давно в документе, если открыть "детальную" запись по сотруднику было такое поле. Потом это поле убрали из пользовательского режима, но не из конфигурации. И документы(табличная часть НДФЛ) остались с этим реквизитом. А бух делал последующие документы копированием старых. Так и тянулись "старички" по цепочке копирований. По новым сотрудникам все было нормально, что и сбивало с толку.
После ручной правки реквизита, все пришло в норму.
Здравствуйте!
Подскажите пожалуйста из за чего в анализе состояния налогового учёта по УСН не появляется оплата труда?
В настройке параметров учёта стоит учёт во внешней программе, счёт 70,аналитический учёт расчётов с персоналом по каждому работнику. В УП объект налогообложения доходы минус расходы.
В документах по учёту зарплаты есть отражение зарплаты в регламентированном учёте. Счёт 70, как надо.
Уже всю голову сломала, вроде верно всё, а оплата не выводится..
---
Нужно делать на каждого? А вы попробуйте ввести выплату одному конкретному сотруднику, можно вообще в копии базы. И после этого посмотрите - принята его з/п к расходам или нет? Отсюда и делайте выводы.

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

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

Проверьте, чтобы документ ОЗвРУ делал приходные движения по регистру "Расходы по УСН", а все выплаты были типовыми кассовыми документами, с видами операций, связанными с зарплатой (а не "прочими"). Исключите любые ручные операции и свободные корреспонденции по зарплате - УСН 15 требует ведения учета типовыми документами почти везде.

Если последний абзац верен, восстановите последовательность через "Закрытие месяца".
---
Спасибо. В колонке расходы УСН стоит "принимаются".
В регистре Расходы по УСН отражение зарплаты в регламентном учёте тоже есть. Только не указан почему то счёт..
День добрый. Есть документ с ТЧ , в ней есть реквизит "Номенклатура"(тип "СправочникСсылка.Номенклатура", и есть реквизит "полка", тип строка (такой же реквизит есть в номенклатуре). Заполняю тч, и нужно при проведении перенести значение из реквизита "полка" тч, в реквизит справочника.
Код :

```1c
    Для Каждого Стр Из ТЧ Цикл

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

    КонецЦикла;
```

Но он не изменяет а наоборот создаёт новый объект
---
Всё, решение нашёл, стояла дополнительная проверка в модуле справочника
---
Всё, решение нашёл, стояла дополнительная проверка в модуле справочника
Доброго времени суток.

При тестировании управляемых блокировок наткнулся на одну особенность.

В транзакции , например, при проведении документа , есть код:

```1c
    НаборЗаписей.БлокироватьДляИзменения = Истина;
    НаборЗаписей.Прочитать();
    НаборЗаписей.Записать();
```

Следовательно, согласно справке, в процессе записи набора будет установлена управляемая блокировка для всех комбинаций измерений в соответствии с записями набора записей.

Проблема заключается в том, что набор не меняется и перезапись в бд не происходит. И в ходе эксперимента обнаружил, что и сама блокировка отсутствует. Таким образом, свойство отрабатывает только в случае изменений в наборе.

Правильно ли я понял, что в подобных ситуациях есть вероятность некорректного расчета. Получается, что необходимо использовать объект "БлокировкаДанных"?
---
Свойство "БлокироватьДляИзменения" влияет на использование сплиттера при записи в случае использования разделения итогов. Данные оно не блокирует.
https://infostart.ru/public/196565/ тут подрбнее
---
А зачем их читать?

Вроде так делают, чтобы заблокировать предыдущий набор записей

```1c
    НаборЗаписей.Прочитать();
    НаборЗаписей.Очистить();
    НаборЗаписей.Записать();
```

А вообще, можно просто

```1c
    НаборЗаписей.Записать();
```

Ибо, набор изначально пустой
---
Свойство "БлокироватьДляИзменения".

Свойство "БлокироватьДляИзменения" не устанавливает блокировку. Блокировка будет установлена не зависимо от этого свойства при любой записи движений и до конца транзакции.
"БлокироватьДляИзменения" отключает разделитель итогов у таблиц остатков.
---
Свойство "БлокироватьДляИзменения" влияет на использование сплиттера при записи в случае использования разделения итогов. Данные оно не блокирует.
https://infostart.ru/public/196565/ тут подрбнее
---
Управляемую блокировку сделает строка:

```1c
    НаборЗаписей.Прочитать();
```

Если Вам не нужна блокировка, но есть необходимость читать движения, то надо сделать это запросом
Здраствуйте.

Подскажите как в запросе 1с 8.2 присвоить значение переменной.
Нужно написать вот так: 1(один) как количество, или 0(ноль) как себестоимость.
Какими функциями воспользоваться.

Спасибо.
---
```1c
    ВЫБРАТЬ
    1 КАК Количество,
    0 КАК Себестоимость
    ИЗ Документ.РеализацияТоваровУслуг.Товары
```
---
```1c
    ВЫБРАТЬ
    1 КАК Количество,
    0 КАК Себестоимость
    ИЗ Документ.РеализацияТоваровУслуг.Товары
```
---
Спасибо
1С: ЗУП 3.1. Как вывести в печатную форму должность в нужном падеже, используя стандартные функции?
---
Функция с запросом к "РегистрСведений.СклоненияПредставленийОбъектов", но чтобы корректно работала, необходимо, чтобы в пользовательском режиме были заполнены склонения у должности

```1c
    //ПолучитьСклонениеДолжности
    Функция ПолучитьСклонениеДолжности(Объект)

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

    Результат = Запрос.Выполнить();
    Если Не Результат.Пустой() Тогда
    Выборка = Результат.Выбрать();
    Выборка.Следующий();
    Возврат Выборка.РодительныйПадеж;
    Иначе
    Возврат Неопределено
    КонецЕсли;

    КонецФункции //ПолучитьСклонениеДолжности()
```
---
А вот кусок кода. Нестандартно, но корректно.
---
СклонениеПредставленийОбъектов.ПросклонятьФИО()
---
Криво склоняет
---
Зато стандартная функция.
---
Функция с запросом к "РегистрСведений.СклоненияПредставленийОбъектов", но чтобы корректно работала, необходимо, чтобы в пользовательском режиме были заполнены склонения у должности

```1c
    //ПолучитьСклонениеДолжности
    Функция ПолучитьСклонениеДолжности(Объект)

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

    Результат = Запрос.Выполнить();
    Если Не Результат.Пустой() Тогда
    Выборка = Результат.Выбрать();
    Выборка.Следующий();
    Возврат Выборка.РодительныйПадеж;
    Иначе
    Возврат Неопределено
    КонецЕсли;

    КонецФункции //ПолучитьСклонениеДолжности()
```
---
Используйте экспортную функцию:

```1c
    СклонениеПредставленийОбъектов.ДанныеСклонения()
```

И включите использование константы: ИспользоватьСервисСклоненияMorpher
Здравствуйте.
Есть две базы. Проходит полный обмен данными. База А целая, база Б сломалась.
Есть бэкап 10 дневной давности. Накатываю и провожу обмен. В базу Б затягивается информация, но часть ссылок получается с ошибкой - объект не обнаружен.
Я так понимаю эти элементы просто не загружаются, т.к. файл обмена из базы А содержит изменения с последней синхронизации. Т.е. порядка нескольких часов, а мне нужно, чтобы в файл попали все элементы с даты на которую я восстановил базу.
Либо, чтобы файл выгрузки содержал всю базу. Как это можно сделать?
---
Ищем на ИТС обработку "Регистрация изменений для обмена", регистрируем для узла все объекты, радуемся.
---
Ищем на ИТС обработку "Регистрация изменений для обмена", регистрируем для узла все объекты, радуемся.
Создал веб-сервис получил справочник "номенклатура" в базе, после десериализации получаю таблицу значений со справочником, но

```1c
    &НаСервереБезКонтекста
    Функция Десериализовать(XMLСтруктура)
    ЧтениеXML = Новый ЧтениеXML;
    ЧтениеXML.УстановитьСтроку(XMLСтруктура);
    ТЗ = СериализаторXDTO.ПрочитатьXML(ЧтениеXML);
    ЧтениеXML.Закрыть();
    Возврат ТЗ;

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

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

```1c
    Для Каждого Стр Из ТЗ Цикл
    Попытка
    ЭтоГруппа = Ложь;
    Если ТЗ.Колонки.Найти("ЭтоГруппа") <> Неопределено Тогда
    ЭтоГруппа = Стр.ЭтоГруппа;
    КонецЕсли;

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

```1c
    Для Каждого Стр Из ТЗ Цикл
    Попытка
    ЭтоГруппа = Ложь;
    Если ТЗ.Колонки.Найти("ЭтоГруппа") <> Неопределено Тогда
    ЭтоГруппа = Стр.ЭтоГруппа;
    КонецЕсли;

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

Вот на обычных формах.
Во коде внешней печатной формы

```1c
    Функция ПолучитьВыборкуКонтрагентов()

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

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

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

//Затем обращаемся

```1c
    Контрагенты = ПолучитьВыборкуКонтрагентов();
    ТЗ = Контрагенты.ВыбратьСтроку(); //тут пользователь выбирает из формы конрагента
    Покупатель = ТЗ.Ссылка; // выбранный контрагент прописывается в переменную.
```

Было очень удобно. А как подобное теперь реализовать на управляемых формах?
---
Приведенный пример очень странный. Его можно реализовать в УФ на списке значений, но не нужно.
Пользователь не видит результата своего выбора и не имеет возможности его исправить в случае ошибки. Это плохо.
Обычно для этого поле ввода делается. А у поля ввода можно ограничить список выбираемых значений.
---
//Затем обращаемся

```1c
    Контрагенты = ПолучитьВыборкуКонтрагентов();
    ТЗ = Контрагенты.ВыбратьСтроку(); //тут пользователь выбирает из формы конрагента
    Покупатель = ТЗ.Ссылка; // выбранный контрагент прописывается в переменную.
```

Ну это древние методы. Сейчас все куда проще:

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

Разработал обработку которая формирует список в excel и выводит его пользователю.

Что хочу попробовать реализовать: когда список пользователя выведен, то задается вопрос: "Отправить список" и если да, то чтобы открытый файл отправлялся на почту.

Вопрос: Можно ли это реализовать не сохраняя этот файл, то есть как бы из буфера получается что ли. ?

Буду благодарен, если скажите куда рыть?
---
Лисапед изобретаете... А не проще файл сохранить во-временную папку, отправить и удалить?
---
Лисапед изобретаете... А не проще файл сохранить во-временную папку, отправить и удалить?
---
Вот именно это мне и нужно, а где можно посмотреть сей велосипед?
---
Туплю с утра. Сообразил. Спасибо.
---
вот здесь: Сохранение и отправка, только там подробнее...
Вопрос всем добрым людям. Хочу записать в файл некий текст, но будь он неладен этот асинхрон.
Получилось вот так:

```1c
    &НаКлиенте
    Процедура ВыборФайла(ВыбранныеФайлы, ДополнительныеПараметры) Экспорт

    ДиалогОткрытия = ДополнительныеПараметры.ДиалогОткрытия;
    ТекстФайла = ДополнительныеПараметры.ТекстФайла;

    Если (ВыбранныеФайлы <> Неопределено) Тогда
    МассивВыбранныхФайлов = ДиалогОткрытия.ВыбранныеФайлы;
    Для Каждого ИмяВыбранногоФайла Из МассивВыбранныхФайлов Цикл
    ВыбранныйФайл = Новый Файл(ИмяВыбранногоФайла);
    КонецЦикла;
    Иначе
    Возврат;
    КонецЕсли;

    СодержимоеФайла = Новый ТекстовыйДокумент;
    СодержимоеФайла.УстановитьТекст(ТекстФайла);
    СодержимоеФайла.НачатьЗапись(Новый ОписаниеОповещения("РезультатЗаписиФайла",ЭтаФорма, Новый Структура("ВыбранныйФайл", ВыбранныйФайл)),ВыбранныйФайл,КодировкаТекста.UTF8);

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

    &НаКлиенте
    Процедура РезультатЗаписиФайла(Результат, ДополнительныеПараметры) Экспорт
    ф = 1;
    КонецПроцедуры

    &НаКлиенте
    Процедура СформироватьФайл(ТекстФайла)

    ДиалогОткрытия = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
    ДиалогОткрытия.ПолноеИмяФайла = ";
    Фильтр = НСтр("ru = 'Календарь iCalendar'; en = 'Calendar iCalendar'") + "*.ics|*.ics";
    ДиалогОткрытия.Фильтр = Фильтр;
    ДиалогОткрытия.МножественныйВыбор = Ложь;
    ДиалогОткрытия.Заголовок = "Выберите файлы";
    ДиалогОткрытия.Показать(Новый ОписаниеОповещения("ВыборФайла", ЭтаФорма, Новый Структура("ДиалогОткрытия, ТекстФайла", ДиалогОткрытия, ТекстФайла)));

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

    &НаКлиенте
    Процедура Сформировать(Команда)
    Если реквГод = 0 Тогда
    реквГод = Год(ТекущаяДата());
    КонецЕсли;
    ТекстКалендаря = СформироватьНаСервере();
    СформироватьФайл(ТекстКалендаря);
    Сообщить("Загрузка завершена.");
    КонецПроцедуры
```

Вроде как и на ф = 1; выходит, и Результат там истина. Но файла до сих пор нет на диске. Что не так?
---
А что по-вашему у вас в переменной "ВыбранныйФайл" хранится? 1С там строку ждет.
---
А что по-вашему у вас в переменной "ВыбранныйФайл" хранится? 1С там строку ждет.
---
Огромное мерси. У меня там файл окопался.