arefaste/1C_Forums huggingface dataset:
Здравствуйте. Подскажите, есть файл, который лежит в реквизите хранилище, его помещаю в временный каталог. Затем открываю запуститьПриложение, там все норм. Но теперь возникла необходимость проверить были ли изменения в файле, например ворлд файл, изменили, сохранили в тот же получается временный каталог. Как это можно проверить программно, был ли изменен файл? Может быть не только ворлд формат, а и пдф например и т.д.

```1c
    ИмяФайла = Строка(КаталогВременныхФайлов())+СокрЛП(Выборка.Наименование) + ".docx";
    Данные = Выборка.ФайлХранилище.Получить();
    Данные.Записать(ИмяФайла);
```
---
Перед записью во временный файл, сохранить размер и хеш двоичных данных.
```1c
    ХешированиеДанных = Новый ХешированиеДанных(ХешФункция.CRC32);
    ХешированиеДанных.Добавить(ДвоичныеДанные);
    ХешСумма = ХешированиеДанных.ХешСумма;
```
---
Как вариант сравнить размеры файлов
---
Перед записью во временный файл, сохранить размер и хеш двоичных данных.
```1c
    ХешированиеДанных = Новый ХешированиеДанных(ХешФункция.CRC32);
    ХешированиеДанных.Добавить(ДвоичныеДанные);
    ХешСумма = ХешированиеДанных.ХешСумма;
```
---
Спасибо!
---
Спасибо
---
хеш двоичных данных
То есть затем хэш.сумму сравнивать? До и после. Размера не достаточно?
---
Сравнение размера - это небольшая оптимизация, чтобы не считать хеш: если размеры не совпадают, то и так понятно, что изменения есть.
---
Как вариант сравнить размеры файлов
Добрый день.
Зарплата и кадры государственного учреждения, редакция 3.1 (3.1.23.653)
При формировании Расчетного листка из документа Начисление зарплаты и взносы выходит ошибка:
--------------------------------------
Поле объекта не обнаружено (СкомпонованныйМакетКомпоновкиДанных)
{ОбщийМодуль.ЗарплатаКадрыОтчеты.Модуль(1784)}: МакетКомпоновкиДанных = ОтчетОбъект.КомпоновщикНастроек.ПользовательскиеНастройки.ДополнительныеСвойства.СкомпонованныйМакетКомпоновкиДанных;
{ОбщийМодуль.ЗарплатаКадрыОтчеты.Модуль(1661)}: ДобавитьМакетКомпоновкиДанныхОтчета(Отчет, МетаданныеОтчета.Имя, СвойстваВарианта, ОтчетОбъект, НастройкиДобавляемогоВарианта);
{ОбщийМодуль.ЗарплатаКадрыОтчеты.Модуль(1116)}: ОтчетОбъект, СвойстваВарианта, , ОтчетОбъект.КомпоновщикНастроек.ПолучитьНастройки());
{ОбщийМодуль.ЗарплатаКадрыОтчеты.Модуль(1068)}: НастроитьРасчетныйЛисток(ОтчетОбъект, ВариантОтчета, КлючПредопределенногоВарианта);
{ОбщийМодуль.УчетНачисленнойЗарплаты.Модуль(1903)}: ОтчетРасчетныйЛисток = ЗарплатаКадрыОтчеты.ОтчетРасчетныйЛисток();
{Документ.НачислениеЗарплаты.Форма.ФормаДокумента.Форма(6384)}: Возврат УчетНачисленнойЗарплаты.РасчетныйЛистокПоДаннымДокумента(Организация, СписокФизическихЛиц, Месяц, Ссылка, НаборДанныхОтчета);
--------------------------------------------------

Если открыть через функции для технического специалиста , отчет открывается и работает.
Может кто сталкивался с такой проблемой
---
Это ошибка https://bugboard.v8.1c.ru/error/000139420, пока не исправлена.
---
Это ошибка https://bugboard.v8.1c.ru/error/000139420, пока не исправлена.
---
Спасибо. Интересно, в у некоторых работает и на демо версии программы работает.
Здравствуйте.
Бухгалтерия государственного учреждения, редакция 2.0 (2.0.90.36)
1С:Предприятие 8.3 (8.3.21.1674)

Имеем документ "Кассовое поступление", в котором нельзя проставлять отрицательные суммы.
Можно ли это как либо решить с помощью расширения.
Неотрицательность прописана в реквизите.

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

В общем, имеется справочник Материалы с реквизитом ФормаМатериала.
Также есть документ Заказы, в табличной части (СтоимостьМатериала) которого выводится Наименование материалов и ФормаМатериала из справочника Материалы, и реквизит цена, который зависит от ФормыМатериала (в зависимости от формы будет разная формула расчёта).
Таким образом, необходимо проверить значение в колонке ФормаМатериала текущий строки. Как я пробовал сделать:

```1c
    &НаКлиенте
    Процедура МатериалПриИзменении(Элемент)
    ТекСтрока = Элементы.СтоимостьМатериала.ТекущиеДанные;
    Если ТекСтрока.ФормаМатериала= "круг" Тогда
    //Формула цены по материалу круг
    КонецЕсли
    КонецПроцедуры
```

Выдаёт ошибку "Поле объекта не обнаружено (ФормаМатериала)

При этом ко всем остальным колонкам текущей строки я без проблем могу обратиться и узнать значение, например, когда изменил код на проверку не формы материала, а его наименования:

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

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

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

    Возврат;
    КонецПроцедуры
```
---
ОбработкаПолученияДанныхВыбора в модуле менеджера.
---
Свойство элемента формы "Поиск при вводе" установить в "Не использовать".
---
если вопрос про Строку поиска, которая Ctrl+F, то ее можно сделать недоступной, или вообще убрать с формы.
Убрать - свойство таблицы формы "ПоложениеСтрокиПоиска" в "Нет".
---
В УФ там ща куча галочек - сохранять историю выбора, бла-бла-бла... Погляди, потыкайся...
---
У формы списка есть в палитре свойств
Положение строки поиска
Управление строкой поиска
Поставь везде нет
---
Ещё: снять галочку "автозаполнение" у командной панели формы или списка (смотря где у вас) и добавить только то что нужно
---
Пардон не так понял в (5)

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

    Возврат;
    КонецПроцедуры
```
---
Все равно ввожу букву и ищет по первой букве!

Можно вообще отключить. Перейти на объект тип которого у реквизита и на закладке "Прочее": "Полнотекстовый поиск" - "не использовать"

или

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

Так вот, если добавленному пользователю не назначена роль "Полные права", то выражение РольДоступна(ИмяРоли) истинно, а если назначена - ложно.

Это баг или фича?
Я понимаю, что можно использовать РольДоступна(ИмяРоли) Или РольДоступна("ПолныеПрава"), но что мне делать, если не все полноправные пользователи могут выполнять контролируемое действие?
---
судя по всему используется БСП. Так используйте стандартные методы из нее:

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

```1c
    Если РольДоступна(ИмяРоли) Тогда ...
```

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

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

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

```1c
    КадровыеДанныеСотрудниковЗамена = КадровыйУчет.КадровыеДанныеСотрудников(Истина, Объект.ГЛ_СотрудникЗамещающий, "Должность, ДолжностьПоШтатномуРасписанию, Подразделение, РазрядКатегория", ТекущаяДата()); //массив

    Если ЗначениеЗаполнено(КадровыеДанныеСотрудниковЗамена) Тогда

    ДолжностьСотЗамена = КадровыеДанныеСотрудниковЗамена[0].Должность;
    ДолжностьСотЗаменаПодразделение = КадровыеДанныеСотрудниковЗамена[0].Подразделение;
    ДолжностьСотЗаменаРазряд = КадровыеДанныеСотрудниковЗамена[0].РазрядКатегория;

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

Пишите правильно.

```1c
    ОбщегоНазначения.СообщитьПользователю
    ОбщегоНазначенияКлиент.СообщитьПользователю
```
---
```1c
    ВызватьИсключение "Все накрылось медным тазом. Печати не будет."
```

Пишите правильно.

```1c
    ОбщегоНазначения.СообщитьПользователю
    ОбщегоНазначенияКлиент.СообщитьПользователю
```
---
Может проще добавить Возврат, после первого Сообщить в тексте.
Всем привет! Помогите с написанием кода, я полный новичок, еще учусь
Есть Справочник Внутренние документы, на форму Элемента я вынес отдельное поле "Проект", при его заполнении должна идти запись в Табличную часть "Товары" в колонку "Проект"

Процедура ЗаписьПроекта()

ПроектФорма = Элементы.Проект1;

 Для Каждого Стр из Объект.Товары Цикл
  Стр.Расш1_Проект = ПроектФорма;
 КонецЦикла;
  Объект.Записать();
КонецПроцедуры;

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

```1c
    ЗначениеОбъект = РеквизитФормыВЗначение("Объект");
    ЗначениеОбъект.Записать();
```

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

    ПроектФорма = Элементы.Проект1;

    Для Каждого Стр из Объект.Товары Цикл
    Стр.Расш1_Проект = ПроектФорма;
    КонецЦикла;

    Записать();

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

Или

```1c
    &НаСервере
    Процедура ЗаписьПроекта()

    ПроектФорма = Элементы.Проект1;

    ЗначениеОбъект = РеквизитФормыВЗначение("Объект");
    Для Каждого Стр из ЗначениеОбъект.Товары Цикл
    Стр.Расш1_Проект = ПроектФорма;
    КонецЦикла;

    ЗначениеОбъект.Записать();

    КонецПроцедуры;
```
---
Эм... А отладчиком смотрели? Какой тип имеет ПроектФорма?
---
Элементы.Проект1
Это Элемент формы, а не значение элемента. Значения хранятся в реквизитах формы.
на форму Элемента я вынес отдельное поле "Проект",
Вынесен откуда? ПутьКДанным у Элемента будет реквизит "Проект"? Тогда:

```1c
    ПроектФорма = Проект;
```
---
В управляемых формах реквизит Объект имеет тип "ДанныеФормы", поэтому используйте метод формы "Записать()".
Или на стороне сервера сначала нужно получить значение

```1c
    ЗначениеОбъект = РеквизитФормыВЗначение("Объект");
    ЗначениеОбъект.Записать();
```

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

    ПроектФорма = Элементы.Проект1;

    Для Каждого Стр из Объект.Товары Цикл
    Стр.Расш1_Проект = ПроектФорма;
    КонецЦикла;

    Записать();

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

Или

```1c
    &НаСервере
    Процедура ЗаписьПроекта()

    ПроектФорма = Элементы.Проект1;

    ЗначениеОбъект = РеквизитФормыВЗначение("Объект");
    Для Каждого Стр из ЗначениеОбъект.Товары Цикл
    Стр.Расш1_Проект = ПроектФорма;
    КонецЦикла;

    ЗначениеОбъект.Записать();

    КонецПроцедуры;
```
Здравствуйте!
УТ11. Сделал обработку создания и выгрузки файла эксель на ftp.

```1c
    FTPСоединение = Новый FTPСоединение(АдресСервера,Порт,Логин,Пароль);
    ВременныйФайл = ПолучитьИмяВременногоФайла("xlsx");
    КнигаExcel.SaveAs(ВременныйФайл);
    ПриложениеExcel.Quit();
    FTPСоединение.Записать(ВременныйФайл,"import.xlsx");
```

Если прогоняю пошагово в отладчике тогда все хорошо. Но если запускаю без точки останова тогда получаю ошибку: Ошибка совместного доступа к файлу 'C:\Users\User\AppData\Local\Temp\v8_9CC3_19.xlsx'
Такое чувство, что не успевает освободить файл. Подскажите, пожалуйста, как решить?
---
ПриложениеExcel.Quit();
Прежде чем выходить из Экселя надо закрыть файл.

```1c
    КнигаExcel.Close();
```

Да и строчку с открытием ФТП-соединения перенести ниже на три строки.

```1c
    ВременныйФайл = ПолучитьИмяВременногоФайла("xlsx");
    КнигаExcel.SaveAs(ВременныйФайл);
    КнигаExcel.Close();
    ПриложениеExcel.Quit();
    FTPСоединение = Новый FTPСоединение(АдресСервера,Порт,Логин,Пароль);
    FTPСоединение.Записать(ВременныйФайл,"import.xlsx");
```
---
ПриложениеExcel.Quit();
Прежде чем выходить из Экселя надо закрыть файл.

```1c
    КнигаExcel.Close();
```

Да и строчку с открытием ФТП-соединения перенести ниже на три строки.

```1c
    ВременныйФайл = ПолучитьИмяВременногоФайла("xlsx");
    КнигаExcel.SaveAs(ВременныйФайл);
    КнигаExcel.Close();
    ПриложениеExcel.Quit();
    FTPСоединение = Новый FTPСоединение(АдресСервера,Порт,Логин,Пароль);
    FTPСоединение.Записать(ВременныйФайл,"import.xlsx");
```
---
КнигаExcel.Close();(4)
(4)Да помогло. Спасибо!
---
КнигаExcel.SaveAs(ВременныйФайл);
Можно использовать SaveCopyAs, чтобы не удерживал файл.
---
паузу поставить
---
подскажите как...
---
Дождаться 25 релиза...
https://wonderland.v8.1c.ru/blog/metod-vyzvatpauzu/
---
Спасибо!
Добрый день, конфигурация ЕРП 2.5 подскажите, пожалуйста, в модуле какого объекта метаданных в Конфигураторе по регламентной операции ,,Начисление резервов по сомнительным долгам,, посмотреть какие именно регистры анализирует эта операция для начисления резервов? Пробовала смотреть и в общем модуле и по документы не нашла. Спасибо
---
просто взаиморасчеты по покупателям хранятся в 2 из 3-х регистров взаиморасчетов, больше негде. по документам 1С не считает, данные берет из регистров. Регистр расчетыСКлиентами содержит минимум аналитики, а регистр РАсчетыСКлиентамиПоСрокам содержит практически готовые данные, но он может не использоваться, может использоваться регистр РасчетыСКлиентамиПоДокументам
---
регистр накопления расчеты с покупателями по срокам и расчеты с поставщиками по срокам.
(но это не точно :) )
---
спасибо, а где вы посмотрели, что это именно эти регистры?) мне нужно знать, где именно это посмотреть, чтобы потом строить отчеты по нужным регистрам.
(2)
---
просто взаиморасчеты по покупателям хранятся в 2 из 3-х регистров взаиморасчетов, больше негде. по документам 1С не считает, данные берет из регистров. Регистр расчетыСКлиентами содержит минимум аналитики, а регистр РАсчетыСКлиентамиПоСрокам содержит практически готовые данные, но он может не использоваться, может использоваться регистр РасчетыСКлиентамиПоДокументам
```1c
    ВЫБРАТЬ
    ДокументыДТ.ДоговорКонтрагента КАК ДоговорКонтрагента,
    ДокументыДТ.КорДоговорКонтрагента КАК КорДоговорКонтрагента
    ПОМЕСТИТЬ ВТ_ДокументыДТ
    ИЗ
    &ДокументыДТ КАК ДокументыДТ
    ;
    ВЫБРАТЬ
    ТЧДокумента.ДоговорКонтрагента.ТипЗатрат КАК КапексОпекс
    ПОМЕСТИТЬ ВТ_ДокументыКоррДолга
    ИЗ
    ВТ_ДокументыДТ КАК ТЧДокумента
    ГДЕ
    НЕ ТЧДокумента.ДоговорКонтрагента = ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.)
```

Ошибка: ТЧДокумента.ДоговорКонтрагента.ТипЗатрат - Поле не найдено, хотя реквизит есть. В чем может быть проблема?

&ДокументыДТ - таблица значений с колонками "ДоговорКонтрагента" и "КорДоговорКонтрагента". Типы СправочникСсылка.ДоговорыКонтрагентов.

Не могу вытащить вообще ни один реквизит из "ТЧДокумента.ДоговорКонтрагента"
---
Попробуйте так

```1c
    ВЫБРАТЬ
    ВЫРАЗИТЬ(ТЧДокумента.ДоговорКонтрагента КАК Справочник.ДоговорыКонтрагентов).ТипЗатрат КАК КапексОпекс
    ....
```
---
ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.)
вот это что за конструкция ".)"?
Попробуйте открыть запрос конструктором.
---
это сокращенное от "Справочник.ДоговорыКонтрагентов.ПустаяСсылка"
---
Попробуйте так

```1c
    ВЫБРАТЬ
    ВЫРАЗИТЬ(ТЧДокумента.ДоговорКонтрагента КАК Справочник.ДоговорыКонтрагентов).ТипЗатрат КАК КапексОпекс
    ....
```
---
можно в первом запросе выразить договор.

```1c
    ВЫБРАТЬ
    ВЫРАЗИТЬ(ДокументыДТ.ДоговорКонтрагента КАК Справочник.ДоговорыКонтрагентов) КАК ДоговорКонтрагента,
    ДокументыДТ.КорДоговорКонтрагента КАК КорДоговорКонтрагента
    ПОМЕСТИТЬ ВТ_ДокументыДТ
    ИЗ
    &ДокументыДТ КАК ДокументыДТ
    ;
```

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