Ответы в темах
-
АвторСообщения
-
В 1С:УНФ можно оформить взаимозачёт по возврату товара поставщику с учётом того, что вам продали другой товар, чтобы уменьшить долг.
Как это сделать:
1. Возврат товара поставщику оформляется документом «Возврат товаров поставщику». При проведении этого документа уменьшается задолженность перед поставщиком.
2. Если вместо возврата денег вы хотите зачесть стоимость возвращаемого товара в счёт оплаты другого товара, то:
— В документе «Поступление товаров и услуг» на новый товар укажите, что оплата будет частично или полностью за счёт взаимозачёта.
— В разделе «Взаимозачёты» (если есть в вашей конфигурации) оформите взаимозачёт по суммам с поставщиком.
— Если функционал взаимозачётов не настроен, можно вручную уменьшить долг, оформив документ «Взаимозачёт взаимных требований» или «Корректировка долга» (в зависимости от конфигурации).3. Важно, чтобы в учёте корректно отражались операции: возврат товара уменьшает задолженность, а поступление нового товара — увеличивает.
4. Если в вашей конфигурации нет стандартного механизма взаимозачётов, можно сделать так:
— Оформить возврат товара поставщику (уменьшение долга).
— Оформить поступление нового товара (увеличение долга).
— В документах оплаты или взаимозачёта указать взаимосвязь.—
Если нужна конкретная инструкция с кодом или настройками по вашей версии УНФ — уточните, какая именно, помогу с примером.
В 1С:УНФ (Управление нашей фирмой) возврат товара от клиента оформляется через документ «Возврат товаров от клиента». Вот пошаговая инструкция:
1. Открыть раздел «Продажи» в главном меню.
2. Найти и открыть документ «Возврат товаров от клиента». Если его нет в меню, можно создать новый документ через кнопку «Создать» и выбрать этот тип.
3. В шапке документа заполнить обязательные реквизиты:
— Контрагент — выбрать покупателя, который возвращает товар.
— Договор — выбрать договор с этим контрагентом.
— Организация — выбрать свою организацию.
— Склад — указать склад, на который возвращается товар.
— Дата документа — дата возврата.4. В табличной части добавить товары, которые возвращает клиент:
— Можно заполнить вручную, указав номенклатуру, количество и цену.
— Или воспользоваться кнопкой подбора из документов продажи (например, из реализации), чтобы быстро выбрать именно те товары, которые были проданы.5. При необходимости указать причину возврата (если в конфигурации предусмотрено поле или справочник причин возврата).
6. Провести документ. После проведения товар вернётся на склад, а в учёте будет оформлена операция возврата.
7. При необходимости оформить возврат денег клиенту — создайте документ «Платёжное поручение» или «Платёжный ордер» на возврат денежных средств.
Если в вашей версии УНФ нет отдельного документа «Возврат товаров от клиента», то возврат оформляют через документ «Реализация товаров и услуг» с видом операции «Возврат от покупателя».
—
Если нужна конкретика по вашей версии УНФ или по настройкам — уточните, могу помочь с примером или скриншотами.
14 мая 2026 в 17:45 в ответ на: Как разблокировать работу с внешними ресурсами после перехода на клиент-сервер? #37191Тарас, привет!
Ошибка «информационная база была перемещена из файлового режима работы в клиент-серверный, работа с внешними ресурсами заблокирована» возникает из-за того, что в клиент-серверном режиме 1С:Предприятия платформа блокирует работу с внешними ресурсами (например, внешними файлами, COM-объектами, внешними компонентами), если база была ранее в файловом режиме и затем переведена в клиент-серверный режим.
Причина в том, что в клиент-серверном режиме доступ к внешним ресурсам должен быть организован иначе, поскольку серверная часть работает на сервере, а клиент — на рабочей станции. В файловом режиме все операции выполняются локально, и доступ к внешним ресурсам возможен напрямую.
Чтобы решить проблему и разблокировать работу с внешними ресурсами после перевода базы из файлового режима в клиент-серверный, нужно:
1. Проверить, что в конфигурации и в настройках платформы разрешена работа с внешними ресурсами в клиент-серверном режиме. Для этого в конфигураторе зайдите в «Администрирование» → «Настройки информационной базы» → «Параметры» и убедитесь, что опция «Разрешить работу с внешними ресурсами» включена.
2. Если в конфигурации используются внешние компоненты или внешние файлы, то необходимо обеспечить, чтобы сервер 1С имел доступ к этим ресурсам. Например, если это COM-объекты, они должны быть зарегистрированы на сервере, если это файлы — они должны быть доступны по сетевым путям, доступным серверу.
3. В коде 1С, если есть вызовы внешних ресурсов, нужно убедиться, что они выполняются на клиенте, а не на сервере. Для этого используйте директивы препроцессора или проверку контекста выполнения:
1С (Код)123Если Не Сервер Тогда// код работы с внешними ресурсамиКонецЕсли;4. Если необходимо выполнять работу с внешними ресурсами на сервере, то нужно использовать серверные компоненты, которые поддерживают работу в клиент-серверном режиме, либо реализовать обмен данными через механизмы, поддерживаемые сервером.
5. В некоторых случаях помогает полное обновление конфигурации и платформы до последних версий, где улучшена поддержка работы с внешними ресурсами в клиент-серверном режиме.
6. Если база была переведена из файлового режима в клиент-серверный недавно, рекомендуется проверить и обновить все внешние компоненты, а также убедиться, что все пути к внешним файлам корректны и доступны серверу.
7. В крайнем случае, если ошибка возникает при попытке разблокировать работу с внешними ресурсами программно (например, через вызов метода «РазблокироватьРаботуСВнешнимиРесурсами»), то возможно, что в платформе или конфигурации стоит ограничение, и разблокировка невозможна. В этом случае нужно пересмотреть архитектуру работы с внешними ресурсами и перенести их вызовы на клиентскую часть.
Резюмируя: в клиент-серверном режиме 1С ограничивает работу с внешними ресурсами для обеспечения безопасности и корректности работы. Для разблокировки нужно обеспечить правильную организацию доступа к внешним ресурсам, выполнять их вызовы на клиенте и правильно настроить конфигурацию и платформу.
14 мая 2026 в 16:42 в ответ на: Как исправить ошибку XDTO из-за несоответствия поля `НеИспользуется` в XML 1С? #37189Ошибка при чтении XML XDTO:
1С (Код)123456Ошибка преобразования данных XDTO:Чтение объекта типа: {http://v8.1c.ru/8.1/data/enterprise/current-config}CatalogObject.ВидыПовышенийТарифнойСтавки - [807,56]Проверка дополнительного свойства:форма: Элементимя: {http://v8.1c.ru/8.1/data/enterprise/current-config}НеИспользуется: Ошибка проверки данных XDTO:Структура объекта не соответствует типу: {http://v8.1c.ru/8.1/data/enterprise/current-config}CatalogObject.ВидыПовышенийТарифнойСтавкиПричина ошибки — несоответствие структуры XML ожидаемому типу XDTO, конкретно по свойству
НеИспользуется.—
### Что происходит
— В XML есть элемент
<d6p1:НеИспользуется>false</d6p1:НеИспользуется>.
— При чтении XDTO 1С ожидает, что это свойство либо отсутствует, либо имеет другой тип/формат.
— Возможно, в метаданных конфигурации полеНеИспользуетсяотсутствует или имеет другой тип.
— Либо версия метаданных, с которой формируется XML, и версия, в которую загружается, не совпадают.—
### Как исправить
1. Проверь метаданные конфигурации
— Проверь, что в справочнике/объекте
ВидыПовышенийТарифнойСтавкиесть реквизитНеИспользуется.
— Тип реквизита должен быть булевым (логическим).
— Если реквизит отсутствует, то либо обнови конфигурацию, либо исключи это поле из XML.2. Синхронизация версий конфигураций
— Убедись, что база, в которую загружаешь XML, имеет актуальные метаданные, соответствующие источнику.
— Если метаданные устарели, обнови их.3. Изменение правила формирования XML
— Если ты формируешь XML вручную или через правила конвертации, исключи из выгрузки поле
НеИспользуется, если оно не поддерживается в приемнике.
— Либо сделай условие, чтобы поле выгружалось только если оно есть в метаданных приемника.4. Исправление в XDTO-модели
— Если используешь собственные XDTO-модели, проверь описание типа
CatalogObject.ВидыПовышенийТарифнойСтавки.
— Убедись, что полеНеИспользуетсяописано корректно.—
### Кратко
Ошибка из-за того, что в XML есть поле
НеИспользуется, а в метаданных приемника оно отсутствует или несовместимо.Решение: либо обновить метаданные приемника, либо убрать это поле из XML перед загрузкой.
—
Если нужна помощь с конкретным кодом формирования или загрузки XML — приложи его, помогу адаптировать.
В твоём коде XML формируется в строке:
1С (Код)1СтрокаXML = ЗаписатьОбъектВXMLXDTO(Эл);Это, скорее всего, вызов внешней функции или процедуры, которая формирует XML из объекта в формате XDTO.
Если отладчик не заходит в эту функцию, значит:
— Либо она в другом управляемом модуле, расширении, внешней обработке.
— Либо это встроенная функция, недоступная для отладки.—
### Как посмотреть XML в текущей процедуре
Добавь вывод сформированного XML сразу после вызова
ЗаписатьОбъектВXMLXDTO:1С (Код)123456Для каждого Эл Из МассивДляЗаписи ЦиклСтрокаXML = ЗаписатьОбъектВXMLXDTO(Эл);Сообщить("Сформированный XML для объекта:");Сообщить(СтрокаXML);МОбъектов.Добавить(СтрокаXML);КонецЦикла;Так ты увидишь в окне сообщений 1С весь сформированный XML по каждому объекту.
—
### Если XML очень большой
— Можно записать в файл:
1С (Код)12ПутьФайла = "C:Tempdebug_xml_" + Формат(ТекущаяДата(), "ДФ=yyyyMMdd_HHmmss") + ".xml";ЗаписатьТекстВФайл(ПутьФайла, СтрокаXML, КодировкаТекста.UTF8);— Или сохранить в временный файл и открыть его.
—
### Если функция
ЗаписатьОбъектВXMLXDTO— внешняя или системная— Найди её определение в конфигураторе (поиск по тексту).
— Если это внешний модуль или расширение — открой и поставь там точки останова.
— Если это системная функция, то отладка туда не зайдёт, тогда только вывод результата.—
### Итог
Чтобы увидеть XML, просто выведи его в текущем коде через
Сообщить()или запиши в файл сразу после формирования.—
Если нужна помощь с функцией
ЗаписатьОбъектВXMLXDTO, пришли её код или скажи, где она находится.14 мая 2026 в 16:30 в ответ на: Почему при обмене между УТ и БП ставится фиксированный НДС, а ставки разные? #37185Причина, почему при обмене между УТ 10.3 и БП 3.0 ставится фиксированный НДС, хотя в документах исходно разные ставки, связана с особенностями правил конвертации объектов обмена. В частности, в типовых правилах конвертации для документа «Отчет о розничных продажах» в табличной части «Товары» есть вызов алгоритма, который принудительно подставляет фиксированную ставку НДС при выгрузке:
| Выполнить(Алгоритмы.ЗаполнитьСтавкуВСтрокеПоФлагуУчитыватьНДС);
Этот вызов заменяет реальные ставки НДС, указанные в документах, на фиксированную ставку, заданную в алгоритме. В результате при обмене в БП приходит фиксированная ставка НДС, а не та, что была в УТ.
Решение: нужно отредактировать правила конвертации обмена. В частности, в настройках обмена:
1. Открыть меню «Сервис» -> «Обмен данными с продуктами на платформе 1С 8.2» -> «Обмен данными».
2. Настроить синхронизацию, загрузить правила конвертации объектов.
3. Найти правило конвертации для документа «Отчет о розничных продажах» и табличной части «Товары».
4. На вкладке «При выгрузке» удалить или закомментировать строку с вызовом «Выполнить(Алгоритмы.ЗаполнитьСтавкуВСтрокеПоФлагуУчитыватьНДС);».
5. Сохранить и загрузить обратно правила.
6. Выполнить обмен заново.После этого ставки НДС из документов будут передаваться корректно.
Дополнительно, чтобы бухгалтерия не потеряла автоматическое заполнение ставок НДС, можно настроить подписку на событие записи документа в УТ, которая будет автоматически подставлять ставку НДС из реквизита номенклатуры.
Также стоит проверить, что в правилах обмена не регистрируются объекты, которые не должны участвовать в обмене (например, справочник «АдресныеСокращения»), так как это тоже может вызывать ошибки и некорректности.
Если не знаешь, где именно в коде формируется XML, то вот как найти это:
1. Поиск по ключевым словам в конфигураторе
Открой конфигуратор → Поиск → Поиск по тексту по всей конфигурации.
Ищи по ключевым словам:
—
Новый ЗаписьXML
—ЗаписьXML
—ЗаписатьНачалоЭлемента
—ЗаписатьОбъявлениеXML
—ЗаписатьАтрибут
—ЗаписатьТекст
—ЗаписатьКонецЭлементаЭто самые типичные методы для формирования XML через объект
ЗаписьXML.2. Поиск по другим способам формирования XML
Если не нашли
ЗаписьXML, ищи:—
Новый ПостроительDOM
—ДокументXML
—ЧтениеXML
—XMLСтрока()
—Записать()3. Поиск по расширениям и обработкам
Если в конфигурации есть внешние обработки или расширения, проверь их — там тоже может формироваться XML.
4. Поиск по вызовам веб-сервисов
Если XML формируется для обмена с веб-сервисом, ищи вызовы:
—
ВызватьВебСервис
—HTTPЗапрос
—HTTPСоединениеВ этих местах часто формируют XML.
5. Используй отладчик
Запусти отладчик, поставь точку останова на методах
ЗаписатьНачалоЭлементаилиЗаписатьОбъявлениеXML(если можно), чтобы поймать момент формирования.6. Логирование
Если есть подозрение, что XML формируется в определённой процедуре, добавь туда временный вывод:
1С (Код)1Сообщить("Начало формирования XML");И так далее, чтобы сузить область поиска.
—
Если конфигурация большая и поиск не даёт результата, попробуй:
— Сделать поиск по всему каталогу с исходниками (если есть).
— Попросить коллег, кто писал код, подсказать место.—
Если пришлёшь часть кода или название обработки/модуля, могу помочь точнее.
Ошибка
1С (Код)123456Ошибка при вызове метода контекста (ПрочитатьXML): Ошибка преобразования данных XDTO:Чтение объекта типа: {http://v8.1c.ru/8.1/data/enterprise/current-config}CatalogObject.ВидыПовышенийТарифнойСтавки - [807,56]Проверка дополнительного свойства:форма: Элементимя: {http://v8.1c.ru/8.1/data/enterprise/current-config}НеИспользуется: Ошибка проверки данных XDTO:Структура объекта не соответствует типу: {http://v8.1c.ru/8.1/data/enterprise/current-config}CatalogObject.ВидыПовышенийТарифнойСтавкиозначает, что при чтении XML через XDTO (обмен данными в 1С) структура XML не совпадает с ожидаемой структурой объекта конфигурации.
—
### Причина ошибки
В объекте справочника ВидыПовышенийТарифнойСтавки в XML-документе присутствует элемент (свойство)
НеИспользуется, который отсутствует или имеет другой тип в метаданных конфигурации, с которой вы пытаетесь прочитать этот XML.То есть:
— В XML есть поле
НеИспользуется.
— В конфигурации, в которой происходит чтение, такого реквизита нет или он имеет несовместимый тип.
— Из-за этого XDTO не может сопоставить XML с объектом.—
### Как выяснить причину и устранить
1. Проверьте метаданные конфигурации
— Откройте конфигуратор.
— Найдите справочникВидыПовышенийТарифнойСтавки.
— Проверьте, есть ли в нем реквизитНеИспользуется.
— Если его нет, а в XML он есть — это причина ошибки.2. Проверьте XML-файл
— Откройте XML, который вы пытаетесь прочитать.
— Найдите элементНеИспользуетсявнутри объектовВидыПовышенийТарифнойСтавки.
— Убедитесь, что структура XML соответствует текущей конфигурации.3. Сравните версии конфигураций
— Возможно, XML был выгружен из другой версии конфигурации, где реквизит
НеИспользуетсяприсутствовал.
— При загрузке в конфигурацию без этого реквизита возникает ошибка.4. Исправьте XML или конфигурацию
— Если возможно, удалите из XML все элементы
НеИспользуетсяперед загрузкой.
— Либо добавьте в конфигурацию реквизитНеИспользуетсяс соответствующим типом.
— Либо используйте правила конвертации, которые игнорируют этот реквизит.5. Используйте расширенную диагностику
— Включите трассировку или логирование при чтении XML.
— Посмотрите, на каком именно объекте и элементе происходит ошибка (у вас уже есть строка[807,56]— это строка и позиция в XML).
— Откройте XML в этом месте и посмотрите, что там.—
### Практические рекомендации
— Если вы делаете обмен между разными версиями конфигураций, всегда проверяйте соответствие метаданных.
— Для конвертации используйте механизм правил конвертации (КД2), чтобы исключить лишние реквизиты.
— Если ошибка возникает при загрузке из файла, попробуйте вручную удалить проблемный элемент из XML.
— Если ошибка в обмене через веб-сервисы — проверьте, что обе стороны используют совместимые версии конфигураций.—
### Кратко
Ошибка возникает из-за того, что в XML есть реквизит
НеИспользуется, которого нет в вашей конфигурации в справочникеВидыПовышенийТарифнойСтавки. Нужно либо привести XML и конфигурацию к одному виду, либо настроить правила конвертации, либо удалить этот реквизит из XML.—
Рекомендую посмотреть здесь, как работать с XDTO и правилами конвертации:
https://infostart.ru/public/572559/
https://infostart.ru/public/1137213/Процедура на 1С (8.3), которая открывает Excel-файл через COM, проходит по всем листам, записывает формулу «Какая-тоФормула» во все строки колонки 2 (например, до последней заполненной строки на листе) и сохраняет файл:
1С (Код)123456789101112131415161718192021222324252627282930313233343536373839404142434445464748Константа xlCellTypeLastCell = 11;Константа xlColumnIndex = 2;Процедура ЗаписатьФормулуВоВсеЛисты(ИмяФайла)ПопыткаExcel = СоздатьОбъект("Excel.Application");Excel.Visible = Ложь;Excel.DisplayAlerts = Ложь;Книга = Excel.Workbooks.Open(ИмяФайла);КоличествоЛистов = Книга.Worksheets.Count;Для НомерЛиста = 1 По КоличествоЛистов ЦиклЛист = Книга.Worksheets(НомерЛиста);ПопыткаПоследняяЯчейка = Лист.Columns(xlColumnIndex).SpecialCells(xlCellTypeLastCell);ПоследняяСтрока = ПоследняяЯчейка.Row;ИсключениеПоследняяСтрока = 1;КонецПопытки;Для Строка = 1 По ПоследняяСтрока ЦиклЛист.Cells(Строка, xlColumnIndex).Formula = "=Какая-тоФормула";КонецЦикла;КонецЦикла;Книга.Save();Книга.Close();Excel.Quit();Книга = Неопределено;Лист = Неопределено;Excel = Неопределено;Сообщить("Формулы записаны и файл сохранен: " + ИмяФайла);ИсключениеТекстОшибки = ОписаниеОшибки();Если ЗначениеЗаполнено(Excel) ТогдаПопыткаExcel.Quit();ИсключениеТекстОшибки = ТекстОшибки;КонецПопытки;КонецЕсли;Сообщить("Ошибка при работе с Excel: " + ТекстОшибки);КонецПопытки;КонецПроцедурыОбъяснения:
— Создаем COM-объект Excel.Application.
— Открываем книгу по пути ИмяФайла.
— Для каждого листа определяем последнюю заполненную строку в колонке 2 (B).
— В каждую ячейку колонки 2 от 1 до последней строки записываем формулу. Формула должна начинаться с «=».
— Сохраняем и закрываем книгу, завершаем работу Excel.
— Обработка ошибок для корректного закрытия Excel.Если формула — это просто текст, а не формула Excel, то вместо свойства Formula используйте Value.
Если нужно записать формулу в абсолютно все строки (например, до 1000), замените цикл на нужный диапазон.
Такое расхождение в отчёте 1С, когда одни и те же данные (например, ФИО и сумма) отображаются в разных строках с разным форматированием или расположением, может возникать по нескольким причинам:
1. Разные источники данных или разные уровни группировки
В отчёте данные могут браться из разных таблиц или регистров, либо группироваться по разным признакам. Например, одна часть данных — это итоги по сотруднику, другая — детализация по документам или периодам. Если группировка или сортировка настроена некорректно, строки с одинаковыми ФИО могут дублироваться.2. Проблемы с форматированием или настройками макета отчёта
В макете отчёта (например, в СКД или в управляемой форме) могут быть разные области с разным форматированием, отступами, шрифтами, что визуально создаёт ощущение расхождения. Например, пустые ячейки, разные выравнивания, объединённые ячейки.3. Пустые или не заполненные реквизиты
Если в некоторых строках отсутствуют данные в определённых колонках, то визуально строки могут выглядеть по-разному, хотя по сути это одна и та же информация.4. Дублирование данных из-за ошибок в запросе
В запросе может быть ошибка, из-за которой одни и те же данные попадают в выборку несколько раз. Например, неправильные соединения таблиц (JOIN), отсутствие DISTINCT, или неправильные условия отбора.5. Разные типы данных или ссылки на разные объекты с одинаковыми значениями
Например, если ФИО берётся из справочника сотрудников, а суммы — из разных регистров, и ссылки на сотрудников не совпадают, то в отчёте будет несколько строк с одинаковым ФИО, но разными суммами.6. Особенности группировки и подитогов
Если в отчёте есть подитоги или итоги по группам, то они могут выводиться отдельными строками, которые визуально похожи на повторяющиеся данные.—
Что проверить:
— Проверьте запрос, который формирует данные для отчёта. Убедитесь, что нет дублирующих соединений и что используется
УникальныеилиDISTINCT, если нужно.
— Проверьте настройки группировки и сортировки в отчёте.
— Посмотрите макет отчёта — возможно, там объединённые ячейки или разные области с разным форматированием.
— Проверьте, что данные берутся из одних и тех же справочников/регистров и ссылки совпадают.
— Если используется СКД, проверьте настройки подитогов и группировок.—
Если нужно, могу помочь с анализом конкретного запроса или макета отчёта — приложите код запроса или описание структуры отчёта.
14 мая 2026 в 11:06 в ответ на: Как настроить синхронизацию данных между двумя базами 1С:УНФ? #37175Да, синхронизация данных между двумя базами 1С:УНФ (Управление нашей фирмой) возможна и реализуется стандартными средствами платформы 1С через механизм синхронизации данных.
Как настроить синхронизацию УНФ ↔ УНФ:
1. В обеих базах УНФ зайдите в раздел Администрирование → Синхронизация данных.
2. Включите синхронизацию, создайте профиль обмена, выберите тип обмена — «1С:УНФ» (если есть такой пункт) или настройте обмен через файл.
3. Настройте параметры подключения:
— Если базы находятся на одном сервере или в локальной сети — можно настроить прямое подключение.
— Если базы в разных местах — лучше использовать обмен через файлы (XML), которые выгружаются в общую папку и загружаются в другую базу.4. Задайте префиксы для каждой базы, чтобы избежать конфликтов номеров документов и справочников.
5. Настройте правила обмена — какие справочники, документы и регистры участвуют в обмене.
6. Выполните начальную выгрузку и загрузку данных, сделайте сопоставление элементов (контрагенты, номенклатура, организации и т.п.).
7. После успешной настройки запускайте обмен по расписанию или вручную.
Особенности:
— Обмен работает только с проведёнными документами.
— При удалении объектов в базе-источнике они помечаются на удаление в базе-приёмнике.
— Важно правильно настроить права доступа и префиксы, чтобы избежать дублирования.
— При больших объёмах данных рекомендуется обмен через файлы с контролем.Рекомендую посмотреть подробную инструкцию по настройке синхронизации УНФ с другими конфигурациями 1С, она полностью применима и для обмена между двумя УНФ:
https://infostart.ru/1c/articles/1879418/Если нужна помощь с конкретной настройкой — могу подсказать по шагам.
Да, в 1С можно сравнивать Тип значения (ТипЗнч) с ОписаниемТипа (Тип). Но важно понимать, что ТипЗнч(Значение) возвращает объект типа «ТипЗначения», а Тип(«ИмяТипа») — объект типа «ОписаниеТипа». Для корректного сравнения нужно, чтобы сравнивались именно объекты одного класса.
Пример правильного сравнения:
1С (Код)12345ИмяНужногоТипа = "ДокументСсылка.РеализацияТоваров";Если ТипЗнч(Объект) = Тип(ИмяНужногоТипа) Тогда// Обработка при совпадении типа;КонецЕсли;Здесь
Тип(ИмяНужногоТипа)возвращает описание типа, аТипЗнч(Объект)— тип значения объекта. Если объект действительно является ссылкой на документ «РеализацияТоваров», сравнение будет истинным.Если же у вас есть переменная с типом (например,
МойТип = Тип(«ДокументСсылка.РеализацияТоваров»)), то сравнивать можно так:1С (Код)123Если ТипЗнч(Объект) = МойТип Тогда// ...КонецЕсли;Или наоборот, если у вас есть объект, а нужно получить его описание типа:
1С (Код)1ТипЗнч(Объект);Таким образом, сравнивать можно, но нужно использовать именно
ТипЗнчдля получения типа объекта иТип()для получения описания типа по имени.Сравнение
1С (Код)1Реквизит.Тип = Тип("СправочникСсылка." + ИмяВладельца)в 1С НЕ является корректным для проверки, что тип реквизита — ссылка на справочник с именем
ИмяВладельца.Почему?
1.
Реквизит.Тип— это объект типаТип, который описывает тип реквизита, например, ссылочный тип на справочник.2.
Тип(«СправочникСсылка.» + ИмяВладельца)— это попытка получить тип по строковому имени, но в 1С нельзя динамически формировать имя типа таким образом и передавать в функциюТип().3. Кроме того, сравнение объектов типа
Типчерез=в 1С не всегда корректно, лучше использовать методРеквизит.Тип.СовпадаетС(ДругойТип).Как правильно проверить, что реквизит — это ссылка на конкретный справочник?
Правильный способ — сравнить имя типа реквизита с нужным именем типа, например:
1С (Код)123Если Реквизит.Тип.Имя = "СправочникСсылка." + ИмяВладельца Тогда// Это ссылка на справочник ИмяВладельцаКонецЕсли;Или, если нужно сравнивать объекты типа, то получить тип справочника заранее:
1С (Код)1234ТипСправочника = Тип("СправочникСсылка." + ИмяВладельца);Если Реквизит.Тип.СовпадаетС(ТипСправочника) Тогда// ...КонецЕсли;НО! Вызов
Тип(«СправочникСсылка.» + ИмяВладельца)с динамическим именем может не сработать, если такого типа нет или имя сформировано неправильно.Поэтому лучше:
— Формировать имя типа заранее и проверять через строку
Реквизит.Тип.Имя.— Или использовать метод
СовпадаетСс заранее полученным типом.Пример:
1С (Код)1234ИмяТипа = "СправочникСсылка." + ИмяВладельца;Если Реквизит.Тип.Имя = ИмяТипа Тогда// ...КонецЕсли;Или, если нужно получить тип справочника:
1С (Код)1234567891011ПопыткаТипСправочника = Тип(ИмяТипа);ИсключениеТипСправочника = Неопределено;КонецПопытки;Если ТипСправочника <> Неопределено ТогдаЕсли Реквизит.Тип.СовпадаетС(ТипСправочника) Тогда// ...КонецЕсли;КонецЕсли;Вывод: сравнение
Реквизит.Тип = Тип(«СправочникСсылка.» + ИмяВладельца)— не корректно, лучше сравнивать черезРеквизит.Тип.Имяили использоватьСовпадаетСс заранее полученным типом.14 мая 2026 в 8:52 в ответ на: Как правильно сжать .ldf файл при бэкапе журнала каждые 15 минут? #37169Если у вас настроено регулярное резервное копирование журнала транзакций (каждые 15 минут), то корректное сжатие файла журнала (.ldf) в MS SQL Server делается так:
1. Убедитесь, что база работает в режиме восстановления Full (полный), иначе бэкап журнала не делается.
2. После успешного резервного копирования журнала транзакций можно выполнить команду усечения (truncation) и сжатия файла журнала.
Стандартный порядок действий:
— Выполнить резервное копирование журнала транзакций:
|BACKUP LOG [ИмяБазы] TO DISK = N’Путь_к_файлу_бэкапа.trn’ WITH NOFORMAT, NOINIT, NAME = N’ИмяБазы-Transaction Log Backup’, SKIP, NOREWIND, NOUNLOAD, STATS = 10
— После успешного бэкапа выполнить сжатие файла журнала:
|DBCC SHRINKFILE (ИмяФайлаЖурнала, ЦелевойРазмерВМБ)
Где ИмяФайлаЖурнала — логический файл журнала (можно узнать через:
|SELECT name FROM sys.database_files WHERE type_desc = ‘LOG’ AND database_id = DB_ID(‘ИмяБазы’)
ЦелевойРазмерВМБ — желаемый размер файла журнала в мегабайтах, например 10 или 20.
Пример:
|DBCC SHRINKFILE (ИмяЖурнала, 10)
Важно:
— Не рекомендуется делать сжатие файла журнала слишком часто, т.к. это может привести к фрагментации и снижению производительности.
— Если бэкап журнала делается каждые 15 минут, то сжатие можно делать, например, раз в сутки или по мере необходимости.
— Автоматическое сжатие (Auto Shrink) для базы лучше отключить.
— Если журнал растет слишком быстро, проверьте, нет ли открытых транзакций, которые не завершаются.
— Можно автоматизировать процесс с помощью SQL Agent Job, который сначала делает бэкап журнала, затем DBCC SHRINKFILE.
Пример скрипта для задания агента:
|BACKUP LOG [ИмяБазы] TO DISK = N’Путь_к_бэкапуИмяБазы_TransactionLog.trn’ WITH NOFORMAT, NOINIT, NAME = N’ИмяБазы-Transaction Log Backup’, SKIP, NOREWIND, NOUNLOAD, STATS = 10;
|DBCC SHRINKFILE ((SELECT name FROM sys.database_files WHERE type_desc = ‘LOG’ AND database_id = DB_ID(‘ИмяБазы’)), 10);Если хотите, могу помочь с готовым скриптом под ваши параметры.
Рекомендую посмотреть здесь:
13 мая 2026 в 20:04 в ответ на: Как добавить сортировку по «Проведен» в журнал документов 1С? #37167В стандартных журналах документов 1С поле «Проведен» обычно не добавляется в настройки сортировки и отбора напрямую, потому что это служебный реквизит, а не поле таблицы базы данных, доступное для сортировки через интерфейс.
Чтобы добавить сортировку и отбор по признаку «Проведен» в журнал документов, если его нет в
НастройкаПорядка, нужно сделать так:1. Добавить виртуальное поле «Проведен» в запрос журнала
В конфигураторе открой форму журнала документов, найди запрос, который формирует список (обычно в модуле формы или в настройках табличного поля). В запрос нужно добавить полеПроведениз документа, например:1С (Код)1234567|ВЫБРАТЬ| Документы.Ссылка,| Документы.Дата,| Документы.Проведен,| ...|ИЗ| Документ.ТвойДокумент КАК Документы2. Добавить колонку «Проведен» в табличное поле
В форме журнала добавь колонку, которая будет показывать признак проведения (галочка или текст). В свойствах колонки укажи путь к данным:Проведен.3. Добавить возможность сортировки по этой колонке
В свойствах колонки включи сортировку (если это управляемая форма, то сортировка по колонке будет работать автоматически).4. Добавить отбор по признаку «Проведен»
В форме можно добавить элемент управления — флажок или переключатель, который будет менять отбор по полюПроведен. В модуле формы при изменении этого элемента программно менять отбор:1С (Код)123456Если ФлажокПроведен = Истина ТогдаЭлементыФормы.ТабличноеПоле.Отбор.Проведен.Установить(Истина);ИначеЭлементыФормы.ТабличноеПоле.Отбор.Проведен.Сбросить();КонецЕсли;ЭлементыФормы.ТабличноеПоле.Обновить();—
Если журнал построен на стандартном механизме (например, на
ДокументСписок), и ты не можешь изменить запрос напрямую, тогда:— Создай собственный отчет или обработку с нужным запросом, где добавишь поле
Проведен.
— Либо сделай расширение конфигурации, где переопределишь форму журнала с добавлением поля и сортировки.—
В общем, прямо добавить поле «Проведен» в
НастройкаПорядканельзя без добавления этого поля в источник данных (запрос).Рекомендую посмотреть пример добавления колонки и отбора в списках документов здесь:
https://infostart.ru/public/340597/ (пример добавления колонки «Есть проводки», принцип тот же)
https://helpf.pro/faq/view/722.html (как программно добавить отбор в СКД)Если нужна помощь с конкретным запросом — приложи его, помогу адаптировать.
-
АвторСообщения