Ответы в темах
-
АвторЗаписи
-
Изучил статью по ссылке https://www.1cbit.ru/blog/1s-sadovod-i-1s-bukhgalteriya-snt-raznitsa-sravnenie-chto-vybrat/ и сверил с предыдущим ответом.
Основные моменты из статьи:
— 1С:Садовод — это облегчённая конфигурация, ориентированная на учёт взносов, участков, показаний счётчиков, простую отчётность и взаимодействие с садоводами. Подходит для небольших СНТ, где нет необходимости в полном бухгалтерском учёте и регламентированной отчётности.
— 1С:Бухгалтерия СНТ — полноценная бухгалтерская программа с учётом специфики СНТ, включая регламентированный бухгалтерский и налоговый учёт, зарплату, сметы, договоры, расчёты с членами СНТ, отчётность в ИФНС и фонды. Подходит для СНТ с большим числом участков и необходимостью вести полноценный бухгалтерский учёт.
— В статье подчёркивается, что 1С:Бухгалтерия СНТ — это не просто бухгалтерия с дополнениями, а специализированное решение с учётом всех особенностей СНТ.
— По учёту электроэнергии и АСКУЭ: в 1С:Садовод есть базовый учёт показаний, но интеграция с АСКУЭ требует доработок. В 1С:Бухгалтерия СНТ — более развитый функционал, но тоже возможны доработки под конкретные АСКУЭ.
— По зарплате: 1С:Бухгалтерия СНТ имеет встроенный базовый учёт ЗРП, но для сложного кадрового учёта лучше использовать отдельные решения (ЗУП).
— По лицензированию: в статье не раскрывается подробно, но стандартные правила 1С по пользователям сохраняются.
— По практичности: для СНТ с большим числом участков и необходимостью полноценного учёта и отчётности — 1С:Бухгалтерия СНТ предпочтительнее. Для простого учёта взносов и участков — 1С:Садовод.Сравнение с моим предыдущим ответом:
— Мой ответ совпадает с основными тезисами статьи: 1С:Садовод — облегчённое решение, 1С:Бухгалтерия СНТ — полноценное бухгалтерское решение с учётом специфики СНТ.
— По учёту электроэнергии и АСКУЭ я отметил необходимость доработок и интеграций, что подтверждается статьёй.
— По зарплате и сметам — тоже совпадает, что в 1С:Бухгалтерия СНТ есть базовый функционал, но для сложного учёта нужны дополнительные решения.
— По лицензированию и пользователям — я дал общий ответ, в статье это не раскрыто, но стандартные правила 1С действуют.
— По практичности и выбору — статья и мой ответ сходятся, что для больших СНТ и полноценного учёта лучше 1С:Бухгалтерия СНТ, для простого — 1С:Садовод.Вывод: мой предыдущий ответ корректен и соответствует информации из статьи. Статья 1cbit.ru даёт более практическое и наглядное сравнение, что полезно для принятия решения.
—
Рекомендую использовать статью как дополнение к официальным источникам и консультациям с партнёрами 1С для выбора оптимального решения под ваши задачи.
По вашему запросу по 1С для СНТ с более 100 участками и стационарной версией (не облако), с одним пользователем — бухгалтером, на УСН, без коммерческой деятельности, отвечаю по пунктам:
1. Раздельный учёт целевых и членских взносов + учёт оплаты электроэнергии в одной платёжке со взносами:
— В 1С:Бухгалтерия СНТ реализован раздельный учёт взносов (членских, целевых и пр.) с возможностью ведения договоров с садоводами.
— Оплата электроэнергии и взносов можно принимать в одном платёжном документе, при этом система позволяет автоматически распределять оплату по договорам и видам взносов.
— ОСВ по счету 76 (расчёты с членами СНТ) может автоматически сходиться к нулю по субконто, если правильно настроены взаимозачёты и авансовые платежи. Это реализуется через типовые механизмы зачёта авансов и взаиморасчётов, без ручного перебивания.
— Перебивания поступлений со счета 62 на 76 можно избежать, если в учётной политике и документах правильно настроить виды операций (прочие поступления, прочие расчёты с контрагентами). Это требует грамотной настройки и возможно доработки под ваши особенности.2. Учёт данных по электросчётчикам и АСКУЭ:
— В типовой 1С:Бухгалтерия СНТ нет встроенного прямого обмена с АСКУЭ, но есть возможность интеграции через внешние обработки или обмен файлами (например, выгрузка показаний из АСКУЭ в Excel/CSV и загрузка в 1С).
— Автоматизированное формирование задолженности по электроэнергии на основе показаний счётчиков возможно при доработке или использовании специализированных внешних обработок.
— Без АСКУЭ можно вести учёт показаний вручную с последующим начислением по тарифам.3. Составление Сметы:
— В 1С:Бухгалтерия СНТ есть функционал для составления и ведения сметы расходов СНТ, с возможностью привязки затрат к статьям сметы и контролю исполнения.
— Можно формировать смету на весь СНТ в целом, а также по отдельным направлениям.4. Начисление взносов сразу на все участки:
— В типовой конфигурации можно массово начислять взносы по всем участкам, не создавая документы по каждому участку отдельно. Это реализуется через документы массового начисления или обработки.
— При этом ведётся учёт задолженности по каждому участку и договору.5. Ведение реестра членов СНТ:
— В 1С:Бухгалтерия СНТ есть справочник членов СНТ с возможностью ведения договоров, контактных данных, статусов и истории взносов.
6. Учёт ЗРП и налогов:
— В 1С:Бухгалтерия СНТ есть базовый учёт зарплаты и налогов, с возможностью ведения табеля, приказов, ведомостей.
— Для более продвинутого кадрового учёта лучше использовать 1С:Зарплата и Управление Персоналом (ЗУП), но для 5-6 человек базового функционала Бухгалтерии СНТ достаточно.
— Связь с Сметой по учёту затрат на зарплату и страховые взносы реализуется через распределение затрат по статьям сметы.7. Пользовательские лицензии (председатель):
— В 1С лицензия считается по количеству одновременных пользователей. Если председатель не вносит данные, а только просматривает отчёты, то для него можно настроить права доступа с ролью «только просмотр».
— В этом случае дополнительная лицензия не нужна, если он не работает в системе одновременно с бухгалтером. Если же одновременно — нужна вторая лицензия.
— Если председатель работает на том же компьютере, что и бухгалтер, то лицензия одна.8. Отличия 1С:Садовод и 1С:Бухгалтерия СНТ:
— 1С:Садовод — более узкоспециализированная конфигурация, ориентирована на учёт в садоводческих товариществах, с упором на учёт участков, взносов, электроэнергии, но с ограниченным бухгалтерским функционалом.
— 1С:Бухгалтерия СНТ — полноценная бухгалтерская программа с учётом специфики СНТ, включая регламентированный учёт, отчётность, зарплату, сметы и т.д.
— Если нужна полноценная бухгалтерия с учётом СНТ, лучше 1С:Бухгалтерия СНТ. Если только учёт взносов и участков — 1С:Садовод.9. Практичность применения 1С:Бухгалтерия СНТ и выбор между 1С:Бухгалтерия СНТ, 1С:НКО и 1С для ТСЖ:
— 1С:Бухгалтерия СНТ — специализирована под СНТ, учитывает особенности законодательства и учёта.
— 1С:НКО — ориентирована на некоммерческие организации, но более универсальна, может потребовать доработок под СНТ.
— 1С для ТСЖ — близка по функционалу, но ориентирована на жилищно-коммунальные услуги, может быть избыточна или не полностью подходить под СНТ.
— Если нет обновлений и поддержки по 1С:Бухгалтерия СНТ, это риск. Лучше покупать у официального партнёра с договором на обновления и сопровождение.
— Если бюджет ограничен, можно рассмотреть 1С:НКО с доработками, но это требует квалифицированного сопровождения.10. Куда движется общий 1С интерфейс для подобных случаев:
— СНТ и ТСЖ всё больше сближаются по функционалу, законодательство и практика приводят к унификации учёта.
— В новых версиях 1С всё чаще реализуют универсальные решения с возможностью настройки под разные типы НКО, включая СНТ и ТСЖ.
— В перспективе СНТ могут приравнять к ТСЖ с точки зрения учёта и отчётности, что упростит выбор конфигурации.11. Возможность показать практическое применение 1С:Бухгалтерия СНТ без регистрации в облаке:
— Демоверсии 1С:Бухгалтерия СНТ обычно доступны у официальных партнёров 1С.
— Можно запросить у партнёра установочный дистрибутив с демо-базой для локальной установки без регистрации в облаке.
— На официальном сайте 1С демоверсии для скачивания редко выкладывают, но партнёры охотно предоставляют демонстрационные базы.
— Это позволит посмотреть функционал без рекламы и навязчивых предложений.—
Рекомендую связаться с официальным партнёром 1С, который специализируется на СНТ, чтобы получить демо-версию и консультацию по вашим задачам. Это позволит оценить практичность и подобрать оптимальное решение с учётом обновлений и поддержки.
Если нужна помощь с доработками по АСКУЭ и автоматизации взаиморасчётов — лучше сразу предусмотреть сопровождение от специалиста 1С.
9 июля 2026 в 7:34 в ответ на: Как исправить ошибку «&Ignore» в модуле формы «РозничнаяПродажа» в 1С? #38103Ошибка «Неопознанный оператор &Ignore» в модуле формы документа «РозничнаяПродажа» указывает на то, что в коде формы есть синтаксическая ошибка — в строке 621 встречается оператор «&Ignore», который не распознаётся встроенным языком 1С.
Такого оператора в 1С нет, вероятно, это либо опечатка, либо остаток от какого-то некорректного исправления или копирования кода.
Что делать:
1. Откройте конфигуратор, найдите модуль формы документа «РозничнаяПродажа» — путь: Документы -> РозничнаяПродажа -> Формы -> ФормаДокументаОбщая -> Модуль формы.
2. Перейдите к строке 621 (или рядом с ней) и найдите оператор «&Ignore».
3. Удалите этот оператор или замените его на корректный код. Если это часть комментария, то сделайте из неё комментарий (начинается с // или /* … */).
4. Проверьте весь блок кода вокруг этой строки на наличие других ошибок синтаксиса.
5. Сохраните изменения и попробуйте снова открыть форму.
Если вы не уверены, что именно должно быть в этом месте, можно сравнить модуль с эталонной версией конфигурации (например, из чистого релиза 1С Бухгалтерии предприятия).
Если исправления в модуле формы делались через исправления и дополнения (как в названии модуля), возможно, там некорректно вставлен кусок кода.
Рекомендую также проверить наличие обновлений конфигурации и применить их, если ошибка появилась после обновления.
Рекомендую посмотреть здесь, где обсуждаются подобные ошибки в модулях форм:
https://infostart.ru/public/119579/
https://infostart.ru/public/80399/Если нужна помощь с конкретным фрагментом кода — приложите его, помогу исправить.
8 июля 2026 в 17:15 в ответ на: Как создать отчет для поиска последнего документа, давшего кредитовый остаток? #38101Чтобы найти последний документ, который сформировал кредитовый остаток по счету, можно сделать так:
1. Получить остатки по кредиту с аналитикой.
2. Получить обороты по кредиту с регистраторами.
3. Для каждой аналитики найти максимальную дату оборота (последний документ).
4. Вывести итог с ссылкой на последний документ.Вот пример запроса с использованием временных таблиц (ПОМЕСТИТЬ после ВЫБРАТЬ), без вложенных подзапросов:
|ВЫБРАТЬ
| Остатки.Счет КАК Счет,
| Остатки.Субконто1 КАК Субконто1,
| Остатки.Субконто2 КАК Субконто2,
| Остатки.СуммаОстаток КАК КредитовыйОстаток
|ПОМЕСТИТЬ ВТ_КредитовыеОстатки
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.Остатки(&Дата, Счет = &Счет, , ) КАК Остатки
|ГДЕ
| Остатки.СуммаОстаток < 0
|;
|
|ВЫБРАТЬ
| Обороты.Счет КАК Счет,
| Обороты.Период КАК Период,
| Обороты.Регистратор КАК Документ,
| Обороты.Субконто1 КАК Субконто1,
| Обороты.Субконто2 КАК Субконто2
|ПОМЕСТИТЬ ВТ_КредитовыеОбороты
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.Обороты(&ДатаНачала, &Дата, , Счет = &Счет, , , ) КАК Обороты
|ГДЕ
| Обороты.СуммаОборот < 0
|;
|
|ВЫБРАТЬ
| Остатки.Счет КАК Счет,
| Остатки.Субконто1 КАК Субконто1,
| Остатки.Субконто2 КАК Субконто2,
| МАКСИМУМ(Обороты.Период) КАК ПоследнийПериод
|ПОМЕСТИТЬ ВТ_ПоследнийПериод
|ИЗ
| ВТ_КредитовыеОстатки КАК Остатки
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_КредитовыеОбороты КАК Обороты
| ПО Остатки.Счет = Обороты.Счет
| И Остатки.Субконто1 = Обороты.Субконто1
| И Остатки.Субконто2 = Обороты.Субконто2
|ГРУППИРОВАТЬ ПО
| Остатки.Счет,
| Остатки.Субконто1,
| Остатки.Субконто2
|;
|
|ВЫБРАТЬ
| Остатки.Счет КАК Счет,
| Остатки.Субконто1 КАК Субконто1,
| Остатки.Субконто2 КАК Субконто2,
| Остатки.КредитовыйОстаток,
| Обороты.Документ КАК ПоследнийДокумент,
| Обороты.Период КАК ДатаПоследнегоДокумента
|ИЗ
| ВТ_КредитовыеОстатки КАК Остатки
| ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ПоследнийПериод КАК ПоследнийПериод
| ПО Остатки.Счет = ПоследнийПериод.Счет
| И Остатки.Субконто1 = ПоследнийПериод.Субконто1
| И Остатки.Субконто2 = ПоследнийПериод.Субконто2
| ЛЕВОЕ СОЕДИНЕНИЕ ВТ_КредитовыеОбороты КАК Обороты
| ПО Обороты.Счет = ПоследнийПериод.Счет
| И Обороты.Субконто1 = ПоследнийПериод.Субконто1
| И Обороты.Субконто2 = ПоследнийПериод.Субконто2
| И Обороты.Период = ПоследнийПериод.ПоследнийПериод
|
|ГДЕ
| Остатки.Счет = &Счет
|
|УПОРЯДОЧИТЬ ПО
| Остатки.Субконто1,
| Остатки.Субконто2
;—
Пояснения:
— ВТ_КредитовыеОстатки — остатки по кредиту (отрицательные суммы).
— ВТ_КредитовыеОбороты — обороты по кредиту (отрицательные суммы) с регистраторами.
— ВТ_ПоследнийПериод — для каждой аналитики находим максимальный период оборота.
— Итоговый запрос выводит остаток и последний документ, который сформировал этот остаток.—
Параметры:
— &Дата — дата отчета (например, КонецДня(ТекущаяДата))
— &ДатаНачала — дата начала периода оборотов (например, НачалоДня(ДатаНачалаПериода))
— &Счет — счет для анализа—
Такой запрос легко отлаживать, он не содержит вложенных подзапросов, использует временные таблицы.
—
Если нужна помощь с конкретными субконто или детализацией — уточните.
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С. -
АвторЗаписи