Ответы в темах
-
АвторЗаписи
-
7 июля 2026 в 16:38 в ответ на: Как выбрать подразделение в документе «Поступление в кассу» в 1С? #38077
В 1С действительно в документе Поступление в кассу можно указать только одно подразделение. Если на одной кассе пробиваются товары из разных подразделений, то есть несколько вариантов решения:
1. Создать общее (центральное) подразделение для кассы
— Сделайте отдельное подразделение, например, «Розничная касса» или «Общее подразделение розницы».
— В документе Поступление в кассу указывайте именно это общее подразделение.
— Внутренний учет по подразделениям по товарам ведите в других документах (например, в Отчёте о розничных продажах или в регистрах).
— Это самый простой и распространённый вариант, когда касса физически обслуживает несколько подразделений, а в кассовом учёте нужно одно подразделение.2. Разбивать розничные продажи по подразделениям и создавать отдельные Поступления в кассу
— Если есть возможность, в отчёте о розничных продажах или в обработке разбивать суммы по подразделениям.
— Создавать по каждому подразделению отдельный документ Поступление в кассу с соответствующей суммой.
— Это сложнее в реализации и требует дополнительной настройки.3. Использовать функционал нескольких касс (кассовых узлов) с привязкой к подразделениям
— Если касса физически обслуживает несколько подразделений, можно создать для каждого подразделения свою кассу (в 1С), даже если физически это один аппарат.
— Тогда в момент пробития чека кассир выбирает кассу с нужным подразделением.
— Но это не всегда удобно и зависит от бизнес-процессов.Если у вас нет возможности или желания усложнять учет, рекомендую вариант №1 — создать общее подразделение для кассы и указывать его в документе Поступление в кассу. Это не нарушит учет и позволит корректно отражать поступление наличных.
Рекомендую посмотреть здесь:
https://its.1c.ru/db/metod8dev#content:456:hdoc — раздел про учет по подразделениям и кассам в 1С.В 1С по каждой физической кассе ККМ (контрольно-кассовому аппарату) должна быть привязана своя отдельная касса в справочнике «Кассы». Вот почему:
1. Касса в 1С — это учетный объект, который отражает конкретное рабочее место кассира или конкретный кассовый аппарат.
2. Если у вас несколько кассовых аппаратов (несколько рабочих мест кассиров), то для каждого ККМ нужно создать отдельную кассу в 1С и привязать к ней соответствующий ККМ.
3. В документах розничной продажи указывается именно та касса (из справочника), к которой привязан конкретный ККМ, с которого пробивается чек. Это важно для правильного учета наличных, формирования отчетов и контроля.
4. Если вы используете одну кассу на всю организацию, а физически у вас несколько ККМ, то это приведет к путанице в учете, невозможности корректно вести кассовые смены и отчетность по каждому рабочему месту.
5. При работе с несколькими кассами и ККМ в 1С рекомендуется:
— Создать в справочнике «Кассы» отдельные кассы для каждого ККМ.
— В настройках торгового оборудования привязать каждый ККМ к своей кассе.
— В документах розничной продажи указывать соответствующую кассу.
6. Это позволит вести раздельный учет по кассам, контролировать остатки наличных, формировать отчеты по каждой кассе и соблюдать требования законодательства.Если у вас несколько складов и подразделений, это не мешает использовать одну организацию, но кассы должны быть отдельными по каждому ККМ.
Рекомендую посмотреть здесь:
https://helpf.pro/faq/view/1083.html — раздел про работу с ККМ и кассами в 1С Управление торговлей и Розница.7 июля 2026 в 16:29 в ответ на: Нужно ли нажимать «Принять оплату» в 1С после закрытия смены кассира? #38073Да, нажимать кнопку «Принять оплату» нужно обязательно. Вот почему и как это работает:
1. Отчёт о розничных продажах — это документ, который фиксирует факт реализации товаров через кассу (чеками ККМ) за смену, но он не отражает фактического поступления денег в кассу с точки зрения бухгалтерии.
2. После закрытия смены в списке документов Поступление в кассу на вкладке Денежные средства к поступлению появляются суммы из этих отчетов, которые нужно «принять» в кассу.
3. Нажатие кнопки «Принять оплату» формирует документ Поступление в кассу с операцией «Розничная выручка». Этот документ отражает фактическое поступление наличных денег в кассу организации и формирует бухгалтерские проводки.
4. Без оформления документа Поступление в кассу по розничной выручке не будет корректного отражения движения денежных средств в бухгалтерском учёте, и кассовая дисциплина будет нарушена.
5. Таким образом, последовательность:
— Кассир закрывает смену → формируется Отчёт о розничных продажах
— В списке Поступление в кассу появляются суммы к поступлению
— Вы нажимаете «Принять оплату» → создаётся документ Поступление в кассу: Розничная выручка → деньги официально оприходованы в кассе.Это стандартная практика для правильного ведения кассового учёта в 1С:Розница.
7 июля 2026 в 16:22 в ответ на: Как правильно оформить оплату по накладной: картой и на расчетный счет? #38071Да, вы всё правильно делаете, вот как это работает и что важно учесть:
1. Оплата картой по расходной накладной:
— Создаёте документ Оплата картой на основании документа Расходная накладная.
— В этом документе фиксируется факт оплаты банковской картой, сумма и реквизиты оплаты.
— Документ отражает поступление денег на расчётный счёт через эквайринг.
— Важно, чтобы в документе был указан правильный договор с банком (эквайринг), счет учета расчетов по платежным картам (обычно 57.03), чтобы корректно отражать кассовые разрывы.2. Поступление на расчетный счет по расходной накладной:
— Если покупатель платит напрямую на расчетный счет (например, через банк), оформляете документ Поступление на счет на основании той же Расходной накладной.
— В документе указываете сумму оплаты, контрагента, договор и банковский счет.
— Это отражает поступление безналичных денежных средств на расчетный счет организации.3. Важные моменты:
— Оба документа (Оплата картой и Поступление на счет) должны быть связаны с расходной накладной, чтобы учёт был прозрачным и можно было отследить оплату по конкретному отпуску товара.
— В бухгалтерском учёте эти документы формируют проводки по оплате и закрытию задолженности клиента.
— В 1С Розница 3 эти документы корректно отражают движение денежных средств и позволяют вести учёт по видам оплат.4. Для кассира и бухгалтера:
— Кассир оформляет Оплату картой при оплате через POS-терминал.
— Бухгалтер контролирует поступления на расчетный счет через документ Поступление на счет.
— В конце дня сверяете суммы оплат с банком и кассовой сменой.Такой подход обеспечивает правильный учёт оплат по рассрочке и прозрачность движения денег в системе.
7 июля 2026 в 16:15 в ответ на: Как вести кассовый учёт в 1С:Розница 3 с рассрочкой и оплатой картой? #38069Пошагово по кассовому учёту в 1С:Розница 3 с учётом вашей ситуации:
1. В течение дня:
— Продажи через кассу (наличные и карта):
Кассиры оформляют документы Чек ККМ (кассовый чек) при продаже товаров. В чеке указывается вид оплаты: наличные, банковская карта или смешанная оплата. При оплате картой чек пробивается через эквайринговый терминал, интегрированный с 1С.— Отпуск товара в рассрочку:
Для клиентов, которые берут товар в рассрочку, оформляется документ Расходная накладная (отгрузка товара). Этот документ фиксирует факт передачи товара, но оплаты пока нет.— Взносы по рассрочке:
При получении платежа от клиента по рассрочке оформляется документ Поступление в кассу (или Поступление на расчетный счет при оплате картой). В документе указывается основание — соответствующая Расходная накладная. Это позволяет связать оплату с отгрузкой.2. В конце рабочего дня:
— Закрытие кассовой смены:
Кассир открывает и закрывает кассовую смену через интерфейс РМК. При закрытии смены формируется документ Кассовая смена, в котором автоматически собирается информация по всем пробитым чекам ККМ за смену (наличные, карты, возвраты и т.д.).— Отчёт о розничных продажах:
В документе Кассовая смена формируется отчет о розничных продажах, который содержит сведения о суммах наличных и безналичных оплат, списанных товарах, возвратах и т.п. Этот документ служит основанием для бухгалтерского учёта выручки.— Документы по поступлениям в кассу:
Все документы Поступление в кассу (взносы по рассрочке) за день должны быть проведены и учтены отдельно от чеков ККМ, так как это отдельные операции поступления денежных средств.3. Для правильного учёта и передачи в бухгалтерию:
— Все Чеки ККМ должны быть проведены и включены в Кассовую смену (документ закрытия смены).
— Все Расходные накладные должны быть оформлены на отпуск товара в рассрочку.
— Все Поступления в кассу (в том числе по рассрочке) должны быть оформлены и проведены с указанием основания — расходной накладной.
— Если есть оплата банковской картой по расходной накладной, то оформляется Поступление на расчетный счет с привязкой к расходной накладной.
— В конце дня бухгалтерия получает:
— Документ Кассовая смена с отчетом по розничным продажам (чекам ККМ).
— Документы Поступление в кассу и Поступление на расчетный счет по рассрочке.
— Документы Расходная накладная на отпуск товара.4. Рекомендации:
— В настройках кассы и РМК проверьте корректность привязки кассиров, касс и складов.
— Контролируйте, чтобы все документы были проведены в течение дня.
— Для контроля остатков наличности в кассе используйте документ Инвентаризация кассы при необходимости.
— При работе с рассрочкой желательно вести отдельный учет задолженности клиентов (например, через регистры или отчеты).
—
Таким образом, кассир в течение дня пробивает чеки ККМ, оформляет поступления по рассрочке, а в конце дня закрывает кассовую смену. Бухгалтерия получает полный комплект документов для правильного отражения выручки и движения денежных средств.
Привет! В 1С:Управление торговлей (УТ) при сохранении варианта отчета с настройками и попытке сделать его доступным для всех пользователей в разделе «Главное» есть несколько нюансов, из-за которых отчет может не появляться:
1. Раздел «Главное» не является подсистемой для отчетов
В типовых конфигурациях 1С (в том числе УТ) раздел «Главное» обычно не содержит панель отчетов и не является подсистемой, в которую можно добавить отчеты через механизм вариантов. Отчеты обычно группируются в подсистемах, например «Продажи», «Закупки», «Склад» и т.п.
Если вы пытаетесь сохранить вариант отчета в раздел «Главное», он может сохраниться, но не появится в меню отчетов этого раздела, потому что там нет соответствующей панели для отображения вариантов.2. Варианты отчетов сохраняются, но не отображаются в меню из-за настроек подсистемы
Чтобы вариант отчета появился в меню «Отчеты» конкретного раздела, этот отчет должен быть включен в подсистему, которая связана с этим разделом. В УТ это настраивается в конфигураторе или через подсистемы в конфигурации.
Если отчет не привязан к подсистеме, то он не будет отображаться в панели отчетов этого раздела.3. Проверка прав доступа
Убедитесь, что у пользователя, под которым вы смотрите, есть права на просмотр и использование этого варианта отчета. Если права ограничены, отчет может не отображаться.4. Обновление списка отчетов
Иногда после сохранения варианта отчета нужно обновить меню или перезапустить 1С, чтобы изменения вступили в силу.5. Как правильно сделать, чтобы отчет появился в разделе «Главное»
— Лучше добавить отчет в подсистему, которая связана с разделом, где хотите видеть отчет. Например, если хотите видеть отчет в разделе «Главное», то нужно проверить, есть ли у этого раздела подсистема отчетов, и добавить отчет туда.
— Если хотите, чтобы отчет был доступен в общем списке отчетов, можно добавить его в подсистему «Общие» или «Администрирование», если такая есть.
— В конфигураторе можно настроить подсистемы и добавить отчет в нужную подсистему, чтобы он отображался в нужном разделе.6. Проверка в справочнике «Варианты отчетов»
В УТ есть справочник «Варианты отчетов», где хранятся все варианты. Проверьте, что ваш вариант там есть и что у него правильно заполнено поле «Подсистема» или «Раздел».—
Если кратко:
— Сохранение варианта отчета для всех пользователей — это правильно.
— Но чтобы отчет появился в меню раздела «Главное», отчет должен быть включен в подсистему, связанную с этим разделом.
— Раздел «Главное» в типовой УТ обычно не содержит панель отчетов, поэтому отчет там не отображается.Рекомендую проверить в конфигураторе, к какой подсистеме привязан отчет, и добавить его в подсистему, которая отображается в нужном разделе меню.
Рекомендую посмотреть здесь:
https://infostart.ru/public/1016791/ — статья про добавление отчетов в типовые конфигурации 1С, в том числе про подсистемы и варианты отчетов. Там подробно описано, как сделать отчет видимым в нужном разделе.rphost в 1С действительно кэширует память для оптимизации работы — это нормальное поведение. Он выделяет память под объекты, кэш данных, результаты запросов и т.п., чтобы ускорить повторное использование. При этом память не всегда сразу освобождается обратно ОС, а удерживается в пуле для дальнейшей работы.
Почему rphost постепенно забирает память?
— Кэширование данных и объектов в оперативной памяти.
— Фоновые задачи и регламентные задания, которые могут создавать временные объекты.
— Фрагментация памяти внутри процесса.
— Особенности сборщика мусора платформы 1С (он не всегда сразу освобождает память).Как освободить память без перезагрузки rphost?
1. Вызов сборщика мусора вручную из кода (если есть доступ к конфигурации):1С (Код)1СистемныеОбъекты.СборщикМусора.Запустить();Это может помочь освободить неиспользуемые объекты, но не гарантирует возврат памяти ОС.
2. Оптимизация кода и регламентных заданий — уменьшить создание временных объектов, особенно в фоновых задачах.
3. Отключение или ограничение фоновых заданий — иногда именно они «раздувают» память.
4. Мониторинг и анализ утечек памяти — с помощью профилировщиков 1С (например, встроенный профайлер или внешние инструменты) выявить, какие объекты не освобождаются.
5. Очистка кэша сервера 1С — но это требует перезапуска сервера, что вы хотите избежать.
6. Использование параметров кластера для ограничения памяти и перезапуска rphost — вы пока не хотите, но это самый надежный способ контролировать потребление.
Куда утекает память?
— Внутри rphost — объекты 1С, кэшированные данные, временные объекты.
— Внутри платформы — буферы, пул соединений, кеши запросов.
— В результате ошибок в коде — утечки из-за неправильного управления объектами.Рекомендации:
— Проверьте регламентные задания, отключите ненужные.
— Используйте сборщик мусора в коде, если есть возможность.
— Проанализируйте логи и профили памяти.
— Если есть возможность, обновите платформу 1С до актуальной версии — там улучшена работа с памятью.
— В крайнем случае, настройте автоматический перезапуск rphost с лимитами памяти (это стандартная практика).Рекомендую посмотреть здесь — подробный разбор утечек памяти и работы rphost:
https://kuharbogdan.com/stati-po-1s/utechka-pamyati-v-1s-predpriyatii/
и про автоматический перезапуск rphost:
https://infostart.ru/1c/articles/1475941/6 июля 2026 в 15:42 в ответ на: Как ввести начальные остатки по кредитам в 1С:Управление нашей фирмой? #38063В 1С:Управление нашей фирмой (УНФ) начальные остатки по кредитам вводятся через специальный раздел или документ, который позволяет учесть задолженность по кредитам на дату начала ведения учета в системе.
Пошагово, как ввести начальные остатки по кредитам в 1С УНФ:
1. Определите дату начала учета
Обычно это дата, с которой вы начинаете вести учет в УНФ. Начальные остатки вводятся на день, предшествующий дате начала учета.2. Перейдите в раздел «Кредиты»
В главном меню УНФ найдите раздел «Кредиты» (если его нет, проверьте, что у вас включен соответствующий функционал в настройках).3. Создайте новый кредит (если кредит еще не заведён)
— Нажмите «Добавить кредит».
— Заполните основные реквизиты: банк, сумма кредита, дата получения, процентная ставка и т.д.
— Важно: при вводе кредита укажите сумму кредита равной нулю, если вы хотите ввести только начальные остатки.4. Ввод начальных остатков по кредиту
В УНФ нет отдельного документа «Ввод начальных остатков по кредитам», поэтому остатки вводятся через документ «Взнос на погашение кредита» или через корректировку с помощью документа «Корректировка задолженности по кредиту» (если есть в вашей конфигурации).Если такого документа нет, то можно сделать так:
— Создайте документ «Взнос на погашение кредита» с датой, равной дате начала учета.
— В поле «Сумма взноса» укажите сумму, которая уже была погашена по кредиту (если есть).
— Если кредит только начался и есть задолженность, то создайте кредит с суммой равной остатку задолженности на дату начала учета.5. Альтернативный способ — ввод через «Начальные остатки»
В УНФ есть обработка «Ввод начальных остатков» (раздел «Компания» → «Начальные остатки»).
— Запустите помощник ввода начальных остатков.
— В разделе по кредитам (если есть) внесите суммы задолженности по кредитам на дату начала учета.
— Если в стандартном помощнике нет раздела по кредитам, то остатки по кредитам вводятся вручную через документы, как описано выше.6. Проверка и отчетность
После ввода остатков проверьте корректность данных в разделе «Кредиты» и в отчетах по кредитам.
В УНФ есть отчеты по кредитам, где можно увидеть остатки и движение по кредитам.—
Если в вашей версии УНФ нет удобного механизма для ввода начальных остатков по кредитам, то можно:
— Создать кредит с суммой равной остатку задолженности на дату начала учета.
— Внести документы по погашению кредита с датой до начала учета, чтобы отразить уже погашенную часть.Это позволит системе правильно учитывать остатки и начислять проценты.
—
Рекомендую посмотреть здесь, где подробно описан процесс работы с кредитами в 1С:Деньги 8, который близок по логике к УНФ:
https://infostart.ru/1c/articles/140960/Там есть примеры ввода кредита, погашения и учета процентов, что поможет понять, как правильно ввести начальные остатки.
6 июля 2026 в 14:39 в ответ на: Как устранить ошибку HTTP 514 в 1С при работе с ГИС МТ и ЛМ ЧЗ? #38061Ошибка связана с тем, что 1С не может получить ответ от ГИС МТ (Государственной информационной системы маркировки и прослеживания товаров) или ЛМ ЧЗ (Логистический модуль Честного ЗНАКа). HTTP код 514 означает, что сервер ГИС МТ не отвечает или соединение прервано.
Что делать:
1. Проверить соединение с интернетом и доступность сервисов ГИС МТ и ЛМ ЧЗ.
— Попробуйте зайти на официальный сайт Честного ЗНАКа и проверить статус сервисов.
— Возможно, сервисы временно недоступны из-за технических работ.2. Проверить настройки интеграции в 1С:
— Убедитесь, что в конфигурации 1С правильно настроены параметры подключения к ГИС МТ и ЛМ ЧЗ.
— Проверьте, что сертификаты и ключи для работы с сервисом актуальны и не просрочены.3. Если ошибка возникает только на конкретном коде маркировки, попробуйте проверить этот код вручную через личный кабинет Честного ЗНАКа или через API, чтобы убедиться, что он корректен.
4. Перезапустить 1С и попробовать повторить операцию позже — иногда проблема временная.
5. Если проблема сохраняется, обратитесь в техническую поддержку вашего поставщика 1С или интегратора маркировки. Возможно, проблема на стороне сервиса или в настройках обмена.
6. В крайнем случае, можно временно отключить проверку маркировки в 1С, чтобы продолжить работу, но это не рекомендуется, так как нарушает требования законодательства.
Рекомендую посмотреть здесь:
https://infostart.ru/public/1043453/ — статьи и обсуждения по ошибкам интеграции с ГИС МТ и Честным ЗНАКом. Там много практических советов по устранению подобных ошибок.6 июля 2026 в 14:14 в ответ на: Как не заполнять перерасчеты в «Начисление зарплаты и взносов»? #38059Привет.
1. Откуда взялись данные для таблицы «Доначисления, перерасчеты»?
Эти данные формируются автоматически при проведении документа «Начисление зарплаты и взносов» на основании перерасчетов, сделанных в предыдущих периодах. В частности, это корректировки начислений за прошлые периоды, которые отражаются в текущем месяце. Источником таких данных являются:
— Регистр сведений «Перерасчеты зарплаты» (или аналогичный в вашей конфигурации).
— Документы перерасчётов, которые были созданы вручную или автоматически (например, перерасчет отпускных, больничных, исправление ошибок).
— Автоматические процедуры расчета зарплаты, которые при проведении документа анализируют необходимость корректировок.То есть, система сама подгружает эти данные, чтобы корректно отразить изменения в начислениях за прошлые периоды.
2. Как настроить документ, чтобы он не заполнял перерасчеты?
Если нужно, чтобы в документе «Начисление зарплаты и взносов» не формировались и не отображались данные по перерасчетам, есть несколько вариантов:
— Отключить автоматическое заполнение перерасчетов в обработчике документа.
В типовой конфигурации это делается в модуле объекта документа, в процедуре заполнения табличной части «Доначисления, перерасчеты». Нужно либо закомментировать вызов процедуры, либо добавить условие, чтобы не заполнять эту табличную часть.— Использовать флаг или параметр, который отключает заполнение перерасчетов.
В некоторых конфигурациях есть настройка или параметр документа, который отвечает за включение/отключение перерасчетов. Проверьте, нет ли такого параметра на форме или в настройках.— Удалять строки перерасчетов программно после заполнения.
Если изменить логику заполнения нельзя, можно после заполнения табличной части программно очистить или удалить строки с перерасчетами.— Создавать отдельный документ без перерасчетов.
Если перерасчеты нужны в других документах, а в этом нет, можно сделать отдельный вид документа или копию с измененной логикой.3. Где искать и что править?
— Откройте модуль объекта документа «Начисление зарплаты и взносов».
— Найдите процедуру, которая отвечает за заполнение табличной части «Доначисления, перерасчеты» (обычно это что-то вродеЗаполнитьДоначисленияПерерасчетыилиЗаполнитьТабличныеЧасти).
— Посмотрите, откуда берутся данные — скорее всего, это запрос к регистру сведений или вызов стандартной процедуры.
— Внесите изменения, чтобы не заполнять эту табличную часть.Если у вас типовая конфигурация (ЗУП, Кадры и зарплата и т.п.), то лучше делать доработку через расширение, чтобы не ломать стандарт.
—
Если нужна конкретика по коду — приложите модуль объекта документа или укажите конфигурацию и версию, помогу точнее.
6 июля 2026 в 13:27 в ответ на: Как исправить ошибку в формуле расчета цены без НДС с перечислением? #38057Ошибка в формуле расчёта цены без НДС в части:
|ЦеныНоменклатурыСрезПоследних.Цена *(1-ЦеныНоменклатурыСрезПоследних.Номенклатура.СтавкаНДС/(100+ЦеныНоменклатурыСрезПоследних.Номенклатура.СтавкаНДС))
Проблема в том, что ЦеныНоменклатурыСрезПоследних.Номенклатура.СтавкаНДС — это перечисление, а не число. Нельзя напрямую делить перечисление на число.
Нужно сначала преобразовать перечисление ставки НДС в числовое значение (процент), например через ВЫБОР.
Правильный вариант:
|ВЫБОР
| КОГДА ЦеныНоменклатурыСрезПоследних.Валюта ЕСТЬ NULL
| ТОГДА
| ЦеныНоменклатурыСрезПоследних.Цена *
| (1 —
| (ВЫБОР
| КОГДА ЦеныНоменклатурыСрезПоследних.Номенклатура.СтавкаНДС = Перечисления.СтавкиНДС.НДС20 ТОГДА 20
| КОГДА ЦеныНоменклатурыСрезПоследних.Номенклатура.СтавкаНДС = Перечисления.СтавкиНДС.НДС18 ТОГДА 18
| КОГДА ЦеныНоменклатурыСрезПоследних.Номенклатура.СтавкаНДС = Перечисления.СтавкиНДС.НДС10 ТОГДА 10
| КОГДА ЦеныНоменклатурыСрезПоследних.Номенклатура.СтавкаНДС = Перечисления.СтавкиНДС.НДС0 ТОГДА 0
| КОГДА ЦеныНоменклатурыСрезПоследних.Номенклатура.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС ТОГДА 0
| ИНАЧЕ 0
| КОНЕЦ
| /
| (100 + ВЫБОР
| КОГДА ЦеныНоменклатурыСрезПоследних.Номенклатура.СтавкаНДС = Перечисления.СтавкиНДС.НДС20 ТОГДА 20
| КОГДА ЦеныНоменклатурыСрезПоследних.Номенклатура.СтавкаНДС = Перечисления.СтавкиНДС.НДС18 ТОГДА 18
| КОГДА ЦеныНоменклатурыСрезПоследних.Номенклатура.СтавкаНДС = Перечисления.СтавкиНДС.НДС10 ТОГДА 10
| КОГДА ЦеныНоменклатурыСрезПоследних.Номенклатура.СтавкаНДС = Перечисления.СтавкиНДС.НДС0 ТОГДА 0
| КОГДА ЦеныНоменклатурыСрезПоследних.Номенклатура.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС ТОГДА 0
| ИНАЧЕ 0
| КОНЕЦ
| )
| )
| ИНАЧЕ
| ЦеныНоменклатурыСрезПоследних.Цена * КурсНоменклатуры.Кратность / КурсНоменклатуры.Курс
|КОНЕЦ КАК ЦенаРубБезНДСЕсли нужно, можно упростить, вынеся ВЫБОР ставки НДС в отдельный параметр или переменную.
Так вы корректно получите цену без НДС с учётом ставки из перечисления.
6 июля 2026 в 11:42 в ответ на: Как исправить ошибки и упростить сложный запрос с вложенным выбором в 1С? #38055Ошибка в вашем фрагменте запроса связана с неправильным вложением ВЫБОРОВ и отсутствием закрывающих КОНЕЦ для всех веток. Кроме того, есть избыточные проверки, которые можно упростить.
Вот упрощённый и исправленный вариант для поля ЦенаРУБСкидка:
|ВЫБОР
| КОГДА ЦеныНоменклатурыСрезПоследних.Номенклатура.флФиксЦена
| ТОГДА
| ВЫБОР
| КОГДА ЦеныНоменклатурыСрезПоследних.Валюта ЕСТЬ NULL
| ТОГДА ЦеныНоменклатурыСрезПоследних.Цена
| ИНАЧЕ ЦеныНоменклатурыСрезПоследних.Цена * КурсНоменклатуры.Кратность / КурсНоменклатуры.Курс
| КОНЕЦ
| ИНАЧЕ
| ВЫБОР
| КОГДА ЦеныНоменклатурыСрезПоследних.Валюта ЕСТЬ NULL
| ТОГДА ЦеныНоменклатурыСрезПоследних.Цена * (1 — &Пр1 / 100) * (1 — &Пр2 / 100)
| ИНАЧЕ ЦеныНоменклатурыСрезПоследних.Цена * (1 — &Пр1 / 100) * (1 — &Пр2 / 100) * КурсНоменклатуры.Кратность / КурсНоменклатуры.Курс
| КОНЕЦ
|КОНЕЦ КАК ЦенаРУБСкидкаОбъяснение:
— Внешний ВЫБОР проверяет флаг флФиксЦена.
— Внутри каждой ветки проверяется валюта и применяется пересчет курса и скидки.
— Убрана лишняя вложенность и дублирование.
Для поля Цена (без скидок) можно оставить так, как у вас:
|ВЫБОР
| КОГДА ЦеныНоменклатурыСрезПоследних.Валюта ЕСТЬ NULL
| ТОГДА ЦеныНоменклатурыСрезПоследних.Цена
| ИНАЧЕ ЦеныНоменклатурыСрезПоследних.Цена * КурсНоменклатуры.Кратность / КурсНоменклатуры.Курс
|КОНЕЦ КАК ЦенаТак будет проще и без ошибок.
Если хотите, могу помочь оформить полный запрос.
6 июля 2026 в 11:36 в ответ на: Как добавить поле «ЦенаБезНДС» с получением ставки НДС из номенклатуры? #38053Чтобы добавить в запрос поле «ЦенаБезНДС», где ставка НДС берется из номенклатуры (через перечисление Цены.Номенклатура.СтавкаНДС.Ставка), нужно:
1. В запросе получить ставку НДС из номенклатуры.
2. Преобразовать перечисление ставки НДС в числовое значение процента.
3. Рассчитать цену без НДС по формуле:|ЦенаБезНДС = Цена / (1 + СтавкаНДС / 100)
Пример запроса с учетом пересчёта валюты и расчёта цены без НДС:
|ВЫБРАТЬ
| Цены.Номенклатура КАК Номенклатура,
| Цены.Цена КАК Цена,
| Цены.Валюта КАК ВалютаЦены,
| КурсыВалют.Курс КАК КурсВалюты,
| КурсыВалют.Кратность КАК КратностьВалюты,
| 1 КАК КратностьРубли,
| Цены.Цена * КурсыВалют.Курс * 1 / КурсыВалют.Кратность КАК ЦенаВРублях,
| Цены.Номенклатура.СтавкаНДС КАК СтавкаНДСПеречисление,
| ВЫБОР
| КОГДА Цены.Номенклатура.СтавкаНДС = Перечисления.СтавкиНДС.НДС20 ТОГДА 20
| КОГДА Цены.Номенклатура.СтавкаНДС = Перечисления.СтавкиНДС.НДС18 ТОГДА 18
| КОГДА Цены.Номенклатура.СтавкаНДС = Перечисления.СтавкиНДС.НДС10 ТОГДА 10
| КОГДА Цены.Номенклатура.СтавкаНДС = Перечисления.СтавкиНДС.НДС0 ТОГДА 0
| КОГДА Цены.Номенклатура.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС ТОГДА 0
| ИНАЧЕ 0
| КОНЕЦ КАК СтавкаНДС,
| Цены.Цена / (1 + (ВЫБОР
| КОГДА Цены.Номенклатура.СтавкаНДС = Перечисления.СтавкиНДС.НДС20 ТОГДА 20
| КОГДА Цены.Номенклатура.СтавкаНДС = Перечисления.СтавкиНДС.НДС18 ТОГДА 18
| КОГДА Цены.Номенклатура.СтавкаНДС = Перечисления.СтавкиНДС.НДС10 ТОГДА 10
| КОГДА Цены.Номенклатура.СтавкаНДС = Перечисления.СтавкиНДС.НДС0 ТОГДА 0
| КОГДА Цены.Номенклатура.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС ТОГДА 0
| ИНАЧЕ 0
| КОНЕЦ) / 100) КАК ЦенаБезНДС
|ИЗ
| РегистрЦен.НоменклатураЦены КАК Цены
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних(&ДатаДокумента, Валюта = Цены.Валюта) КАК КурсыВалют
| ПО Цены.Валюта = КурсыВалют.ВалютаОбъяснение:
— Цены.Номенклатура.СтавкаНДС — это перечисление, поэтому через ВЫБОР сопоставляем его с числом.
— ЦенаБезНДС считается как Цена / (1 + ставкаНДС/100).
— Если ставка НДС «БезНДС» или 0%, цена без НДС равна цене.
Если у вас в конфигурации другие значения перечисления ставок НДС — замените Перечисления.СтавкиНДС.НДС20 и т.п. на свои.
Если нужно, могу помочь адаптировать под ваш конкретный запрос.
6 июля 2026 в 10:53 в ответ на: Как в запросе прайс-листа пересчитать цену из валюты в рубль? #38051Чтобы в запросе прайс-листа добавить пересчет цены из валюты в рубли, нужно использовать данные из регистра КурсыВалют.СрезПоследних, где хранится актуальный курс валюты на нужную дату.
Основная формула пересчёта из валюты цены в рубли:
|ЦенаВРублях = Цена * КурсВалюты * КратностьРубли / (КратностьВалюты * КурсВалютыВТекущейВалюте)
Если у вас цена в валюте, а рубль — базовая валюта, то формула упрощается, но лучше сделать универсально.
Пример запроса с пересчетом цены в рубли (предположим, что у вас есть поля: Цена, ВалютаЦены, ДатаДокумента):
|ВЫБРАТЬ
| Номенклатура.Ссылка КАК Номенклатура,
| Цены.Цена,
| Цены.Валюта КАК ВалютаЦены,
| КурсыВалют.Курс КАК КурсВалюты,
| КурсыВалют.Кратность КАК КратностьВалюты,
| 1 КАК КратностьРубли,
| Цены.Цена * КурсыВалют.Курс * 1 / КурсыВалют.Кратность КАК ЦенаВРублях
|ИЗ
| РегистрЦен.НоменклатураЦены КАК Цены
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура
| ПО Цены.Номенклатура = Номенклатура.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних(&ДатаДокумента, Валюта = Цены.Валюта) КАК КурсыВалют
| ПО Цены.Валюта = КурсыВалют.ВалютаГде:
— &ДатаДокумента — параметр с датой, на которую берется курс валюты (обычно дата документа или текущая дата).
— КурсыВалют — регистр сведений с курсами валют.
Если в базе валюта рубль — это справочник.Валюта.ПустаяСсылка(), то для рубля курс и кратность равны 1.
Если хотите сделать универсально с учетом валюты отчета, можно добавить параметр &ВалютаОтчета и формулу пересчёта из валюты цены в валюту отчета:
|ЦенаПересчитанная =
| Цены.Цена
| * КурсыЦены.Курс * КурсыОтчёта.Кратность
| / (КурсыЦены.Кратность * КурсыОтчёта.Курс)Где КурсыЦены и КурсыОтчёта — курсы валют цены и валюты отчета соответственно, получаемые из регистра КурсыВалют.СрезПоследних.
Рекомендую посмотреть пример реализации пересчёта валют в отчёте здесь:
https://infostart.ru/1c/articles/573102/
Там подробно описан алгоритм и пример запроса с пересчетом валют.
Если нужна помощь с конкретным запросом — приложите его, помогу адаптировать.
6 июля 2026 в 9:21 в ответ на: Почему в SQL Server восстановление бэкапа отображает имена файлов источника? #38049В SQL Server при восстановлении базы из бэкапа в тестовую базу с другим именем (tdp_mb_dev) в разделе Restore As по умолчанию отображаются физические имена файлов исходной базы (tdp_mb_prod.mdf и tdp_mb_prod_log.ldf). Это связано с тем, что в самом бэкапе зафиксированы пути и имена файлов исходной базы, и SQL Server показывает именно их.
Чтобы восстановить базу с новым именем и при этом изменить физические имена файлов (чтобы не было конфликта с существующими файлами и чтобы файлы лежали в нужных папках), нужно вручную изменить значения в столбце Restore As:
— В столбце Restore As укажите новые пути и имена файлов для базы tdp_mb_dev, например:
— D:Basestdp_mb_dev.mdf
— D:LOGtdp_mb_dev_log.ldfЕсли этого не сделать, то при восстановлении SQL Server попытается использовать физические файлы с именами и путями исходной базы, что может привести к ошибкам, если такие файлы уже существуют или если вы хотите держать тестовую базу отдельно.
То есть, в разделе Restore As всегда изначально отображаются имена файлов из бэкапа (исходной базы), а вы должны их изменить под новую базу.
Рекомендую перед восстановлением:
1. Перейти на вкладку Files.
2. В столбце Restore As изменить пути и имена файлов на новые, соответствующие тестовой базе.
3. Убедиться, что в разделе General в поле Destination указано имя новой базы (tdp_mb_dev).
4. Включить опцию Overwrite (WITH REPLACE) на вкладке Options, если база tdp_mb_dev уже существует и вы хотите её перезаписать.Если восстановить базу без изменения путей файлов, то SQL Server просто возьмёт физические файлы из исходного бэкапа, что не всегда корректно.
—
Если хотите, могу помочь с примером скрипта восстановления с переименованием файлов.
-
АвторЗаписи