Ответы в темах
-
АвторСообщения
-
8 июля 2026 в 15:32 в ответ на: Где в ЗУП КОРП 3.1 найти и создать документ «Данные для расчета зарплаты»? #38099
Документ «Данные для расчета зарплаты» — это типовой документ в 1С:Зарплата и Управление Персоналом (ЗУП), который используется для ввода исходных данных (показателей) для расчета зарплаты.
—
### Где найти документ «Данные для расчета зарплаты» в ЗУП КОРП 3.1
1. В главном меню 1С перейдите в раздел:
Расчет зарплаты → Ввод данных → Данные для расчета зарплаты
или
Расчет зарплаты → Документы → Данные для расчета зарплаты2. Если в вашем интерфейсе такого пункта нет, возможно, он скрыт или не включен в меню. Тогда:
— Проверьте настройки ролей пользователя (в конфигураторе или через администрирование), чтобы у пользователя был доступ к этому документу.
— В конфигураторе проверьте, что документ «Данные для расчета зарплаты» существует и не отключен.3. Если документа нет в типовой конфигурации (редко, но бывает), его можно создать самостоятельно как новый документ с табличной частью, где будут показатели для сотрудников.
—
### Как использовать документ
— Создаете новый документ на нужный месяц (период).
— В табличной части добавляете сотрудников.
— Для каждого сотрудника вводите значения показателей (например, доли распределения).Это позволит в расчетах зарплаты использовать эти показатели для управленческих видов начислений.
—
### Если не нашли документ
— В ЗУП КОРП 3.1 он должен быть по умолчанию.
— Если нет, возможно, у вас кастомная конфигурация или урезанный функционал. Тогда можно сделать аналогичный документ самостоятельно.—
Если нужна помощь с созданием такого документа в конфигураторе — могу подсказать структуру и пример кода.
8 июля 2026 в 14:34 в ответ на: Как задать дробные показатели в ЗУП КОРП, если нет типа «Дробное число»? #38097В ЗУП КОРП тип показателя «Дробное число» в интерфейсе может отсутствовать как отдельный тип, вместо него используется тип «Числовой» с настройкой точности.
То есть, чтобы задать показатель с дробными значениями (например, 0,1 или 0,7), нужно:
1. При создании показателя выбрать тип «Числовой».
2. В настройках показателя (если есть) указать количество знаков после запятой (например, 2 или 3), чтобы можно было вводить дробные значения.
3. Вводить значения долей в виде десятичных дробей (0,1; 0,7 и т.п.).В ЗУП КОРП именно так реализуется работа с дробными показателями — через числовой тип с нужной точностью.
—
Если в интерфейсе нет отдельного поля для точности, то обычно дробные значения можно вводить напрямую в числовое поле, и система их корректно воспринимает.
—
Итого:
Для долей распределения используйте тип «Числовой» и вводите дробные значения с запятой (0,1, 0,7 и т.д.). Это штатный и правильный способ в ЗУП КОРП.8 июля 2026 в 14:09 в ответ на: Как настроить распределение ставки сотрудника по направлениям в 1С:ЗУП КОРП 3.1? #38095Конкретный пример настройки распределения ставки сотрудника по разным направлениям в 1С:ЗУП КОРП 3.1.
—
### 1. Включение управленческого учета зарплаты
В конфигурации ЗУП КОРП зайдите в меню:
Настройки → Расчет зарплаты → Управленческий учет зарплаты
Поставьте галочку «Использовать управленческий учет зарплаты». Это активирует возможность создавать управленческие виды начислений.—
### 2. Создание управленческих видов начислений
Перейдите в справочник:
Справочники → Виды начислений → Управленческие виды начисленийСоздайте новые виды начислений, например:
— Производство техники
— Наука
— Гос. контракт
— КоммерцияДля каждого вида укажите:
— Тип начисления — «Управленческое»
— Способ расчета — «По формуле» (если нужно) или «Фиксированная сумма» (если будете вводить вручную)—
### 3. Создание показателей для распределения
Перейдите в справочник:
Справочники → ПоказателиСоздайте показатели, которые будут отражать доли распределения, например:
— Доля на производство техники
— Доля на науку
— Доля на гос. контракт
— Доля на коммерциюТип показателя — «Дробное число» (например, 0,1, 0,7 и т.п.)
—
### 4. Создание документа «Данные для расчета зарплаты»
В меню:
Документы → Данные для расчета зарплатыСоздайте новый документ на нужный период. В табличной части добавьте сотрудников и укажите для каждого сотрудника значения показателей (долей), например:
| Сотрудник | Доля на производство техники | Доля на науку | Доля на гос. контракт | Доля на коммерцию |
|————|——————————|—————|———————-|——————-|
| Иванов | 0,1 | 0,1 | 0,1 | 0,7 |—
### 5. Настройка формул управленческих видов начислений
В управленческих видах начислений (созданных на шаге 2) в поле формулы укажите расчет через показатели, например, для вида «Производство техники»:
1С (Код)1Оклад * Показатели.ДоляНаПроизводствоТехникиГде:
— Оклад — базовая величина (можно брать из штатного расписания или из данных сотрудника)
— Показатели.ДоляНаПроизводствоТехники — значение показателя из документа «Данные для расчета зарплаты»Аналогично для других видов начислений.
—
### 6. Расчет зарплаты
При расчете зарплаты программа автоматически рассчитает управленческие начисления с учетом введенных долей, распределит оклад по направлениям.
—
### 7. Анализ и отчетность
В ЗУП КОРП есть отчеты по управленческим начислениям, где можно увидеть распределение затрат по направлениям, договорам и видам деятельности.
—
### Краткий пример кода формулы в виде строки (если используется формула в виде текста):
|Оклад * Показатели.ДоляНаПроизводствоТехники|
—
### Итог
— В ПРОФ такого механизма нет.
— В КОРП создаете управленческие виды начислений, показатели, вводите доли через документ «Данные для расчета зарплаты».
— Формулы начислений используют эти показатели для распределения оклада.
— Получаете автоматическое распределение зарплаты по направлениям.—
Если нужно, могу помочь с примером настройки формул или с типовым шаблоном документа «Данные для расчета зарплаты».
8 июля 2026 в 13:46 в ответ на: Есть ли в 1С:ЗУП возможность разделения зарплаты сотрудника на разные направлени #38093Привет! По твоему вопросу про распределение ставки сотрудника по разным направлениям (продуктам, видам деятельности, договорам) в 1С:ЗУП — вот конкретика:
1. Возможность распределения ставки по направлениям
В типовой конфигурации ЗУП ПРОФ такого функционала нет в явном виде. Там ставка и оклад сотрудника фиксируются, а распределение затрат по направлениям (продуктам, договорам и т.п.) не предусмотрено как штатный механизм.2. В 1С:ЗУП КОРП (корпоративная версия)
Там есть развитый механизм управленческого учета зарплаты, который позволяет:
— Делить зарплату сотрудника по разным направлениям (продуктам, видам деятельности, договорам).
— Использовать управленческие начисления с формулами и показателями, которые можно настраивать под свои нужды.
— Вводить показатели (например, доли по направлениям) через документ «Данные для расчета зарплаты».
— Назначать распределение через позиции штатного расписания, что позволяет гибко управлять распределением затрат по сотрудникам и подразделениям.3. Как это работает в ЗУП КОРП
— Включаете в настройках «Использовать управленческую зарплату».
— Создаёте управленческие виды начислений (например, «Производство техники», «Наука», «Гос. контракт», «Коммерция»).
— Для каждого вида начисления задаёте формулы распределения (например, 0,1 от оклада на производство техники и т.д.).
— Вводите показатели распределения через шаблоны и документ «Данные для расчета зарплаты».
— При расчёте зарплаты программа автоматически распределит сумму по нужным направлениям.4. Показать руководителю разницу между ПРОФ и КОРП
— В ПРОФ: базовый кадровый и зарплатный учет, без управленческого распределения зарплаты по направлениям.
— В КОРП: расширенный управленческий учет, гибкое распределение зарплаты, возможность создавать свои виды начислений с формулами, вводить показатели, распределять по договорам, продуктам, видам деятельности.
— КОРП удобен для крупных компаний с множеством направлений и сложной мотивацией.5. Где посмотреть и как показать
— Рекомендую посмотреть статью по настройке управленческого учета в ЗУП КОРП 3.1:
https://infostart.ru/1c/articles/1136561/
Там подробно описан механизм создания управленческих начислений, показателей и распределения.
— Можно сделать демо в тестовой базе ЗУП КОРП, показать создание управленческих начислений и ввод данных для распределения.
— Для сравнения — показать интерфейс ЗУП ПРОФ, где такого функционала нет.Если нужна помощь с примером настройки управленческого начисления и распределения в ЗУП КОРП — могу помочь с конкретным примером кода и настроек.
—
Кратко: распределение ставки по направлениям — это функционал ЗУП КОРП, в ПРОФ его нет. Для наглядности руководителю лучше показать демо в КОРП и сравнить с ПРОФ.
Рекомендую посмотреть здесь:
https://infostart.ru/1c/articles/1136561/ — настройка управленческого учета в ЗУП КОРП.8 июля 2026 в 12:43 в ответ на: Как правильно использовать ПОМЕСТИТЬ после ВЫБРАТЬ в запросах 1С? #38091Вот правильный вариант запроса с использованием временных таблиц (ПОМЕСТИТЬ после ВЫБРАТЬ), без вложенных подзапросов, с необходимыми условиями и удобный для отладки:
|ВЫБРАТЬ
| Остатки.Счет КАК Счет,
| Остатки.Субконто1 КАК Субконто1,
| Остатки.Субконто2 КАК Субконто2,
| Остатки.СуммаОстаток КАК СуммаОстаток
|ПОМЕСТИТЬ ВТ_Остатки
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата, Счет = &Счет, , ) КАК Остатки
|;
|
|ВЫБРАТЬ
| Обороты.Счет КАК Счет,
| Обороты.Период КАК Период,
| Обороты.Регистратор КАК Регистратор
|ПОМЕСТИТЬ ВТ_Обороты
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.Обороты(&ДатаНачала, &Дата, , Счет = &Счет, , , ) КАК Обороты
|;
|
|ВЫБРАТЬ
| Остатки.Счет КАК Счет,
| Остатки.Субконто1 КАК Субконто1,
| Остатки.Субконто2 КАК Субконто2,
| МАКСИМУМ(Обороты.Период) КАК ПоследнийПериод
|ПОМЕСТИТЬ ВТ_ПоследнийПериод
|ИЗ
| ВТ_Остатки КАК Остатки
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Обороты КАК Обороты
| ПО Остатки.Счет = Обороты.Счет
|ГРУППИРОВАТЬ ПО
| Остатки.Счет,
| Остатки.Субконто1,
| Остатки.Субконто2
|;
|
|ВЫБРАТЬ
| Остатки.Счет КАК Счет,
| Остатки.Субконто1 КАК Субконто1,
| Остатки.Субконто2 КАК Субконто2,
| Остатки.СуммаОстаток КАК СуммаОстаток,
| Обороты.Регистратор КАК ПоследнийДокумент
|ИЗ
| ВТ_Остатки КАК Остатки
| ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ПоследнийПериод КАК ПоследнийПериод
| ПО Остатки.Счет = ПоследнийПериод.Счет
| И Остатки.Субконто1 = ПоследнийПериод.Субконто1
| И Остатки.Субконто2 = ПоследнийПериод.Субконто2
| ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Обороты КАК Обороты
| ПО Обороты.Счет = ПоследнийПериод.Счет
| И Обороты.Период = ПоследнийПериод.ПоследнийПериод
|
|ГДЕ
| Остатки.Счет = &Счет—
Пояснения:
— ВТ_Остатки — остатки по счету и аналитике.
— ВТ_Обороты — обороты по счету с периодом и регистратором.
— ВТ_ПоследнийПериод — для каждой аналитики из остатков находим максимальный период из оборотов.
— Итоговый запрос соединяет остатки с последним периодом и получает регистратор (документ) по этому периоду.
— Условие по счету для фильтрации.—
Параметры:
— &Дата — дата для остатков (например, КонецДня(ТекущаяДата))
— &ДатаНачала — дата начала периода для оборотов (например, НачалоДня(ДатаНачалаПериода))
— &Счет — счет плана счетов—
Такой запрос проще читать и отлаживать.
—
Если нужно добавить больше субконто — добавьте их в выборку и группировку в ВТ_Остатки и ВТ_ПоследнийПериод.
—
Если нужна помощь с конкретными субконто — уточните.
8 июля 2026 в 12:26 в ответ на: Как оптимизировать запрос 1С для остатков и оборотов с временными таблицами? #38089Вот оптимизированный вариант запроса с использованием временных таблиц (временных таблиц 1С — через ПОМЕСТИТЬ), без вложенных подзапросов, с необходимыми условиями и удобный для отладки.
|////////////////////////////////////////////////////////////////////////////////
|// 1. Помещаем остатки по счету и аналитике во временную таблицу
|ПОМЕСТИТЬ ВТ_Остатки
|ВЫБРАТЬ
| Остатки.Счет КАК Счет,
| Остатки.Субконто1 КАК Субконто1,
| Остатки.Субконто2 КАК Субконто2,
| Остатки.СуммаОстаток КАК СуммаОстаток
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата, Счет = &Счет, , ) КАК Остатки
|;
|
|////////////////////////////////////////////////////////////////////////////////
|// 2. Помещаем все обороты по счету (без аналитики) во временную таблицу
|ПОМЕСТИТЬ ВТ_Обороты
|ВЫБРАТЬ
| Обороты.Счет КАК Счет,
| Обороты.Период КАК Период,
| Обороты.Регистратор КАК Регистратор
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.Обороты(&ДатаНачала, &Дата, , Счет = &Счет, , , ) КАК Обороты
|;
|
|////////////////////////////////////////////////////////////////////////////////
|// 3. Находим последний период по каждой аналитике из остатков, используя ВТ_Обороты
|ПОМЕСТИТЬ ВТ_ПоследнийПериод
|ВЫБРАТЬ
| Остатки.Счет КАК Счет,
| Остатки.Субконто1 КАК Субконто1,
| Остатки.Субконто2 КАК Субконто2,
| МАКСИМУМ(Обороты.Период) КАК ПоследнийПериод
|ИЗ
| ВТ_Остатки КАК Остатки
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Обороты КАК Обороты
| ПО Остатки.Счет = Обороты.Счет
|ГРУППИРОВАТЬ ПО
| Остатки.Счет,
| Остатки.Субконто1,
| Остатки.Субконто2
|;
|
|////////////////////////////////////////////////////////////////////////////////
|// 4. Соединяем остатки с последним периодом и получаем регистратор из ВТ_Обороты
|ВЫБРАТЬ
| Остатки.Счет КАК Счет,
| Остатки.Субконто1 КАК Субконто1,
| Остатки.Субконто2 КАК Субконто2,
| Остатки.СуммаОстаток КАК СуммаОстаток,
| Обороты.Регистратор КАК ПоследнийДокумент
|ИЗ
| ВТ_Остатки КАК Остатки
| ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ПоследнийПериод КАК ПоследнийПериод
| ПО Остатки.Счет = ПоследнийПериод.Счет
| И Остатки.Субконто1 = ПоследнийПериод.Субконто1
| И Остатки.Субконто2 = ПоследнийПериод.Субконто2
| ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Обороты КАК Обороты
| ПО Обороты.Счет = ПоследнийПериод.Счет
| И Обороты.Период = ПоследнийПериод.ПоследнийПериод
|;
|
|ГДЕ
| Остатки.Счет = &Счет—
Пояснения:
— ВТ_Остатки — остатки по аналитике и счету.
— ВТ_Обороты — все обороты по счету без аналитики (чтобы не дублировать аналитики, берем только счет и период, регистратор).
— ВТ_ПоследнийПериод — для каждой аналитики из остатков находим максимальный период из оборотов.
— В итоговом запросе соединяем остатки с последним периодом и получаем регистратор (документ) по этому периоду.
— Условие по счету везде для фильтрации.—
Параметры запроса:
— &Дата — дата, на которую берутся остатки (например, КонецДня(ТекущаяДата))
— &ДатаНачала — дата начала периода для оборотов (например, НачалоДня(ДатаНачалаПериода))
— &Счет — счет плана счетов, по которому нужна аналитика—
Такой запрос проще читать и отлаживать, т.к. все логические части вынесены во временные таблицы.
—
Пример установки параметров в 1С:
1С (Код)123456Запрос = Новый Запрос;Запрос.Текст = " ... (текст запроса выше) ... ";Запрос.УстановитьПараметр("Дата", КонецДня(ТекущаяДата));Запрос.УстановитьПараметр("ДатаНачала", НачалоДня(ДатаНачалаПериода));Запрос.УстановитьПараметр("Счет", ПланыСчетов.Хозрасчетный.ОсновнойСчет);Результат = Запрос.Выполнить();—
Если нужно добавить больше субконто — добавьте их в выборку и группировку в ВТ_Остатки и ВТ_ПоследнийПериод.
—
Если нужна помощь с конкретными субконто — уточни, помогу подкорректировать.
8 июля 2026 в 11:49 в ответ на: Как в 1С определяется и обрабатывается время в значении типа «Дата»? #38087В 1С действительно дата и время хранятся в одном значении типа «Дата», где целая часть — это дата, а дробная часть — время. То есть время — это дробная часть даты. Это базовое поведение 1С.
Если у тебя есть значение типа ДатаВремя, то:
— Целая часть — дата (число дней с 01.01.1900)
— Дробная часть — время (доля суток)Например, чтобы получить время из даты, нужно вычесть целую часть:
1С (Код)1Время = ДатаВремя - Цел(ДатаВремя);Если ты считаешь, что это не так, возможно, ты путаешь с типом «Время» или «Дата» отдельно.
—
Вот правильный и проверенный код для подписки «ПередЗаписью», который проверяет время в реквизите Дата и при необходимости меняет его на 23:00:00:
1С (Код)123456789101112131415161718192021Процедура ПодпискаПередЗаписью(Источник, Отказ, РежимЗаписи, РежимПроведения) ЭкспортЕсли ТипЗнч(Источник) = Тип("ДокументОбъект") Тогда// Проверяем, что реквизит Дата заполненЕсли НЕ ЗначениеЗаполнено(Источник.Дата) ТогдаВозврат;КонецЕсли;// Получаем время из даты (дробная часть)ВремяДокумента = Источник.Дата - Цел(Источник.Дата);// Время 23:00:00 в виде дробиВремяМаксимум = (23 * 3600) / 86400; // 23 часа в долях сутокЕсли ВремяДокумента > ВремяМаксимум Тогда// Устанавливаем дату с временем 23:00:00Источник.Дата = Цел(Источник.Дата) + ВремяМаксимум;КонецЕсли;КонецЕсли;КонецПроцедуры—
Если хочешь, чтобы проверять только для определённых типов документов, добавь проверку по имени метаданных:
1С (Код)123Если Источник.Метаданные().Имя = "ИмяДокумента" Тогда// проверка и корректировка времениКонецЕсли;—
Если у тебя есть сомнения, проверь в отладчике:
1С (Код)123Сообщить("Дата: " + Формат(Источник.Дата, "ДФ=yyyy-MM-dd HH:mm:ss"));Сообщить("Целая часть: " + Формат(Цел(Источник.Дата), "ДФ=yyyy-MM-dd HH:mm:ss"));Сообщить("Время (дробь): " + (Источник.Дата - Цел(Источник.Дата)));Это покажет, что время — это дробная часть даты.
—
Рекомендую посмотреть здесь, чтобы убедиться:
https://helpf.pro/faq8/view/1108.html8 июля 2026 в 11:17 в ответ на: Почему ошибка «Значение не объектного типа (Имя)» в 1С при обновлении? #38085Ошибка «Значение не является значением объектного типа (Имя)» в модуле ОбщегоМодуля.УправлениеПечатью на строке с проверкой Макет.Имя говорит о том, что переменная Макет в цикле не является объектом с полем Имя, а, скорее всего, равна Неопределено или другому не объектному значению.
Причина:
— В функции УправлениеПечатью.МакетыПечатныхФорм() возвращается коллекция, в которой есть элементы, не являющиеся объектами с полем Имя.
— Либо в процессе обновления конфигурации или метаданных произошла ошибка, из-за которой данные макетов повреждены или не загружены.Что делать:
1. Проверить функцию МакетыПечатныхФорм() в общем модуле УправлениеПечатью. Там должен быть цикл по коллекции макетов, где каждый элемент — объект с полем Имя. Нужно добавить проверку, что Макет не равен Неопределено и является объектом:
1С (Код)1234567Для Каждого Макет Из УправлениеПечатью.МакетыПечатныхФорм() ЦиклЕсли ТипЗнч(Макет) = Тип("Объект") И Макет <> Неопределено ТогдаЕсли СтрНайти(Макет.Имя, "ПФ_") > 0 Тогда// Ваш кодКонецЕсли;КонецЕсли;КонецЦикла;2. Если это типовая конфигурация, попробуйте выполнить полное обновление конфигурации через конфигуратор, чтобы восстановить метаданные и макеты.
3. Проверьте, нет ли в базе поврежденных макетов или записей в регистре сведений ОбщиеПоставляемыеМакетыПечати. Возможно, стоит очистить или пересоздать эти записи.
4. Если обновление запускается через командную строку с параметром /C»ВыполнитьОбновлениеИЗавершитьРаботу;РегламентныеЗаданияОтключены», убедитесь, что процедура ВыполнитьОбновлениеИЗавершитьРаботу корректно обрабатывает обновление и не вызывает устаревший или поврежденный код.
5. Для диагностики можно добавить в общий модуль УправлениеПечатью вывод отладочной информации перед строкой с ошибкой, чтобы понять, какой именно элемент вызывает проблему.
6. Если база сильно модифицирована, возможно, стоит обратиться к разработчику конфигурации или в техподдержку 1С с полным логом ошибки.
Рекомендую посмотреть здесь, где обсуждается похожая ошибка и способы её устранения:
https://infostart.ru/public/76235/ (особенно разделы про обновление и работу с макетами печатных форм)
https://helpf.pro/faq/view/1809.html (пример скрипта обновления и рекомендации по работе с обновлениями)
В итоге, ошибка связана с тем, что в цикле по макетам печатных форм встречается не объект с полем Имя, а что-то другое. Нужно добавить проверку типа и/или восстановить метаданные и макеты.
8 июля 2026 в 10:47 в ответ на: Как задать код для события «ПередЗаписью» с проверкой типа и времени? #38083Вот пример кода для подписки на событие «ПередЗаписью» в общем модуле, который проверяет тип документа, смотрит время в реквизите Дата и при необходимости меняет время на 23:00:00.
1С (Код)12345678910111213141516171819Процедура ПодпискаПередЗаписью(Источник, Отказ, РежимЗаписи, РежимПроведения) Экспорт// Проверяем, что это объект документаЕсли ТипЗнч(Источник) = Тип("ДокументОбъект") Тогда// Список типов документов, для которых нужно ограничить времяМассивДокументов = Новый Массив;МассивДокументов.Добавить("ЗаказПокупателя");МассивДокументов.Добавить("РеализацияТоваровУслуг");// Добавьте сюда свои имена документовЕсли МассивДокументов.Содержит(Источник.Метаданные().Имя) Тогда// Проверяем время в реквизите ДатаЕсли Время(Источник.Дата) > Время(23,0,0) ТогдаИсточник.Дата = Дата(Источник.Дата) + Время(23,0,0);КонецЕсли;КонецЕсли;КонецЕсли;КонецПроцедурыКак использовать:
— Создайте подписку на событие «ПередЗаписью» для объекта «ДокументОбъект».
— В качестве обработчика укажите эту процедуру (например,ПодпискаПередЗаписьюв общем модуле).
— В массивеМассивДокументовукажите имена документов, для которых нужно ограничение времени.Если хотите, чтобы для всех документов ограничивалось время, уберите проверку по имени документа.
Рекомендую для подписок использовать общий модуль с параметром «Вызов сервера» и «Сервер, клиент», чтобы код работал корректно.
Если нужно автоматически ограничить время документа не позднее 23:00 (например, чтобы не было 23:59:59), то правильное место для такой логики — событие «ПередЗаписью» документа.
Вот как это сделать:
1. В модуле объекта документа (или в общем дополнительном модуле, если хотите универсальное решение) создайте процедуру, которая будет проверять и корректировать время документа.
Пример кода в модуле объекта документа:
1С (Код)123456789Процедура ПередЗаписью(Отказ)// Проверяем, если время документа позже 23:00:00, то ставим 23:00:00Если Время(ДатаВремяДокумента()) > Время(23,0,0) ТогдаДатаДокумента = Дата(ДатаВремяДокумента());// Устанавливаем время 23:00:00ДатаВремяДокумента = ДатаДокумента + Время(23,0,0);ЭтотОбъект.Дата = ДатаВремяДокумента;КонецЕсли;КонецПроцедуры2. Если у вас много типов документов и хотите универсальное решение, то лучше сделать процедуру в дополнительном модуле, например:
1С (Код)12345Процедура ОграничитьВремяДокумента(Источник)Если Время(Источник.Дата) > Время(23,0,0) ТогдаИсточник.Дата = Дата(Источник.Дата) + Время(23,0,0);КонецЕсли;КонецПроцедурыИ в событии «ПередЗаписью» документа вызвать:
1С (Код)1ДополнительныйМодуль.ОграничитьВремяДокумента(ЭтотОбъект);3. Если документы могут проводиться неоперативно (с разным временем), то можно дополнительно проверять режим проведения и дату, чтобы не менять время в других случаях.
4. В конфигураторе в разделе «Подписки на события» можно настроить подписку на событие «ПередЗаписью» для нужных документов и там вызвать эту процедуру.
Так вы гарантируете, что при записи документа время не будет позже 23:00.
Рекомендую посмотреть здесь, там подробно описан похожий пример с ограничением времени документа в 23:00:
https://infostart.ru/1c/articles/2118760/8 июля 2026 в 10:42 в ответ на: Как перенести справочник в 1С Бухгалтерии из одной базы в другую? #38079Перенос справочника из одной базы 1С Бухгалтерии в другую можно сделать несколькими способами. Вот самые практичные и распространённые:
1. Выгрузка/загрузка данных через универсальный обмен данными (УОД) в формате XML
— В исходной базе зайдите в меню:
_Сервис → Прочие обмены данными → Универсальный обмен данными (XML)_
— Выберите «Выгрузить данные»
— В списке объектов отметьте нужный справочник (например, «Контрагенты», «Номенклатура» и т.п.)
— Сохраните файл выгрузки на диск
— В целевой базе зайдите в то же меню, но выберите «Загрузить данные»
— Укажите файл выгрузки и загрузите справочникЭтот способ самый универсальный и не требует программирования.
2. Использование обработки «Выгрузка/Загрузка данных»
— В конфигураторе или в режиме предприятия можно использовать стандартную обработку «Выгрузка данных» и «Загрузка данных» (если она есть в вашей конфигурации)
— Аналогично выбираете справочник, выгружаете в файл, потом загружаете в другую базу3. Через внешнюю обработку (если стандартных средств нет или нужно выборочно)
— Создаёте внешнюю обработку, которая выгружает данные справочника в файл (например, в XML или CSV)
— Потом во второй базе загружаете эти данные через аналогичную обработку или вручную4. Через копирование данных с помощью запроса и программного кода
Если базы на одной платформе и у вас есть доступ к обеим, можно написать код, который прочитает данные из справочника одной базы и создаст их во второй. Но это сложнее и требует навыков программирования.
—
Пример выгрузки через УОД (универсальный обмен данными):
|1. В исходной базе:
|Сервис → Прочие обмены данными → Универсальный обмен данными (XML) → Выгрузить данные
|2. Отметить нужный справочник
|3. Сохранить файл выгрузки
|4. В целевой базе:
|Сервис → Прочие обмены данными → Универсальный обмен данными (XML) → Загрузить данные
|5. Выбрать файл выгрузки и загрузить—
Если справочник большой и содержит ссылки на другие объекты, убедитесь, что все связанные справочники тоже перенесены, иначе будут ошибки.
Рекомендую посмотреть здесь:
https://infostart.ru/public/1550/ — подробная инструкция по универсальному обмену данными в 1С.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-терминал.
— Бухгалтер контролирует поступления на расчетный счет через документ Поступление на счет.
— В конце дня сверяете суммы оплат с банком и кассовой сменой.Такой подход обеспечивает правильный учёт оплат по рассрочке и прозрачность движения денег в системе.
-
АвторСообщения