Ответы в темах
-
АвторСообщения
-
21 мая 2026 в 17:13 в ответ на: Как учитывать в 1С ип-селлера на УСН «Доходы» через маркетплейсы? #37416
Пошаговая инструкция по учёту селлера маркетплейсов в 1С:Бухгалтерия 8 для ИП на УСН «Доходы»:
—
### 1. Настройка учетной политики
— В разделе «Главное» → «Настройки» → «Учетная политика» выберите:
— Система налогообложения: УСН с объектом «Доходы».
— Включите ведение Книги учета доходов и расходов (КУДиР).
— Отключите учет НДС (если не платите).—
### 2. Создание контрагентов маркетплейсов
— В справочнике «Контрагенты» создайте карточки маркетплейсов, через которых продаёте.
— В карточке укажите тип контрагента (например, «Комиссионер» или «Агент»), если планируете использовать соответствующие документы.—
### 3. Отражение реализации товаров
— В 1С:Бухгалтерия 8 для УСН «Доходы» реализация отражается по факту поступления денег.
— Если хотите вести учет реализации, создайте документ «Реализация товаров и услуг» с видом операции «Реализация через комиссионера» или «Реализация через агента» (если есть).
— Если такой вид операции отсутствует, можно не оформлять реализацию, а учитывать доходы по факту поступления денег.—
### 4. Отражение поступления денег от маркетплейса
— Приход денег от маркетплейса отражайте документом «Поступление на расчетный счет» или «Поступление наличных»:
— В поле «Вид операции» выберите «Доходы от реализации».
— В табличной части укажите контрагента (маркетплейс), сумму поступления.
— Если маркетплейс удержал комиссию, в сумме укажите чистую сумму, поступившую на счет.—
### 5. Учёт комиссии маркетплейса
— Комиссию маркетплейса отражайте отдельным документом «Расходный кассовый ордер» или «Платежное поручение» (если оплачиваете комиссию напрямую).
— В бухгалтерском учёте комиссия — это прочие расходы (счет 91.02).
— В налоговом учёте при УСН «Доходы» расходы не учитываются, но для внутреннего контроля лучше вести учёт.—
### 6. Корректировки и возвраты
— Если маркетплейс сделал возврат или корректировку, оформите документ «Возврат от покупателя» или корректировку поступления.
— Важно, чтобы в КУДиР отражались реальные суммы доходов.—
### 7. Формирование Книги учета доходов и расходов (КУДиР)
— В разделе «Отчеты» → «Налоговый учет» → «Книга учета доходов и расходов» формируйте отчет за нужный период.
— Проверьте, что все доходы отражены корректно, без пропусков.—
### 8. Формирование налоговой декларации по УСН
— В разделе «Отчеты» → «Налоговая отчетность» → «Декларация по УСН» заполните декларацию на основании данных КУДиР.
— Проверьте правильность заполнения и сдайте в налоговую.—
### 9. Резервное копирование и контроль
— Регулярно делайте резервные копии базы.
— Контролируйте поступления и сверяйте с отчетами маркетплейса.—
### Дополнительно
— Если в вашей конфигурации есть возможность вести учет через регистры накопления, используйте их для контроля комиссий и доходов.
— Для удобства создайте отдельные статьи доходов и расходов, например, «Доходы маркетплейса», «Комиссия маркетплейса».—
Если нужна помощь с конкретными документами или настройками в вашей версии 1С:Бухгалтерия 8, уточните, какая именно версия и конфигурация у вас стоит.
Ошибка блокировок в 1С при работе с MS SQL Server — частая проблема, связанная с конкуренцией за ресурсы базы данных. Вот подробный разбор причин и практические рекомендации по их устранению.
—
### Почему возникают ошибки блокировок в 1С на SQL Server
1. Отсутствие или неэффективные индексы
Если запросы 1С выполняют сканирование больших таблиц (например, регистров сведений, документов), то SQL Server ставит блокировки на большие объемы данных. Это приводит к ожиданиям и конфликтам.
Пример: запрос DELETE или UPDATE без индекса по полю, по которому происходит фильтрация, вызывает блокировку всей таблицы.2. Длительные транзакции и управляемые блокировки 1С
В 1С управляемые блокировки (например, через объект БлокировкаДанных) держатся до конца транзакции. Если транзакция длится долго (например, из-за сложных расчетов или пользовательских ожиданий), другие пользователи ждут освобождения блокировок.3. Режим совместимости 1С и особенности блокировок
В 8.2 и 8.3 (в режиме совместимости с 8.2) при чтении данных ставятся S-блокировки, которые держатся до конца транзакции. В 8.3 без режима совместимости и при включенном Read Committed Snapshot Isolation (RCSI) блокировок чтения нет, что значительно снижает конфликты.4. Эскалация блокировок на уровне SQL Server
При большом количестве мелких блокировок SQL Server может автоматически повысить гранулярность блокировки до блокировки всей таблицы, что снижает параллелизм и вызывает ожидания.5. Регламентные операции и фоновые задания
Если регламентные операции (например, очистка, обновление статистики, дефрагментация индексов) не выполняются регулярно, то производительность падает, увеличивается время выполнения запросов и вероятность блокировок.6. Параллельное проведение документов с пересекающимися данными
Если несколько пользователей одновременно проводят документы, которые изменяют одни и те же записи (например, номенклатуру), возникает конкуренция и блокировки.—
### Как устранить и минимизировать ошибки блокировок
1. Оптимизировать индексы
— Используйте функцию 1СПолучитьСтруктуруХраненияБазыДанных()для анализа таблиц и полей, по которым идут блокировки.
— Добавьте недостающие индексы на поля, участвующие в фильтрах запросов (особенно в регистрах сведений и документов).
— Избегайте избыточных индексов, чтобы не замедлять запись.2. Включить режим версионирования чтения (RCSI) в MS SQL Server
— Это уменьшит блокировки чтения, так как запросы будут читать «снимок» данных, а не ждать освобождения блокировок.
— Команда для включения:MySQL1ALTER DATABASE [ИмяБазы] SET READ_COMMITTED_SNAPSHOT ON;— В 1С 8.3 рекомендуется использовать этот режим, чтобы повысить параллелизм.
3. Минимизировать длительность транзакций в 1С
— Переносить тяжелые вычисления и проверки до начала транзакции.
— Накладывать управляемые блокировки как можно ближе к концу процедуры проведения.
— Использовать программные блокировки (через регистр сведений) только при необходимости и с минимальным временем удержания.4. Использовать программное решение для блокировок по номенклатуре
— Создать служебный регистр сведений для блокировок (например, «БлокировкаПроведенияДокументов»).
— В процедуре проведения документа ставить исключительную блокировку на этот регистр по номенклатуре.
— Это уменьшит конкуренцию и позволит избежать конфликтов на уровне СУБД.5. Регулярно выполнять регламентные операции на SQL Server
— Обновление статистики индексов.
— Дефрагментация и перестроение индексов.
— Очистка кэша процедур.
— Использовать Maintenance Plans или другие средства автоматизации.6. Анализировать и устранять «узкие места» в запросах
— Использовать динамические представления SQL Server (sys.dm_exec_requests,sys.dm_tran_locks) для мониторинга блокировок.
— Анализировать планы запросов, искать сканирования таблиц.
— Переписывать проблемные запросы, если возможно.7. Ограничить параллельное проведение документов с пересекающимися данными
— Внедрить очередь на проведение или использовать программные блокировки.
— Избегать массового проведения большого количества документов одновременно.—
### Полезные запросы для диагностики блокировок в MS SQL Server
|SELECT
| db.name AS DatabaseName,
| r.session_id,
| r.blocking_session_id,
| r.wait_time,
| r.wait_type,
| st.text AS SqlText
|FROM sys.dm_exec_requests r
|OUTER APPLY sys.dm_exec_sql_text(r.sql_handle) st
|WHERE r.blocking_session_id <> 0
|ORDER BY r.wait_time DESC—
### Рекомендации по литературе и инструментам
— Используйте Blocking Monitoring Framework для мониторинга блокировок.
— Посмотрите видео и статьи Виктора Богачева по анализу блокировок.
— Рекомендую статьи на infostart.ru по теме блокировок и оптимизации запросов.—
Если кратко: ошибки блокировок в 1С на SQL Server — это результат конкуренции за данные, вызванной отсутствием индексов, длительными транзакциями и особенностями работы 1С с блокировками. Решается это оптимизацией индексов, включением RCSI, минимизацией времени удержания блокировок и правильной организацией проведения документов.
—
Рекомендую посмотреть здесь:
https://infostart.ru/1c/articles/1431026/
https://infostart.ru/1c/articles/1016138/
https://infostart.ru/1c/articles/629017/21 мая 2026 в 16:05 в ответ на: Как организовать безопасный доступ к веб-серверу через Radmin VPN? #37412Если хотите использовать веб-сервер и Radmin VPN вместе для безопасного доступа через интернет, вот как правильно организовать:
1. Разместите веб-сервер внутри локальной сети, без проброса портов на роутере. Пусть он слушает только на локальном IP (например, 192.168.x.x или IP Radmin VPN).
2. Подключите все удалённые клиенты через Radmin VPN к вашей виртуальной сети. После подключения у них будет IP из диапазона Radmin VPN (26.x.x.x).
3. Доступ к веб-серверу делайте только по IP Radmin VPN. То есть, клиенты заходят на веб-сервер по адресу, который Radmin VPN выдал внутри виртуальной сети.
4. Отключите прямой доступ к веб-серверу из интернета (не делайте проброс портов на роутере). Это исключит внешние атаки.
5. Настройте HTTPS на веб-сервере, даже внутри VPN, чтобы шифровать трафик. Можно использовать самоподписанный сертификат или внутренний CA.
6. Ограничьте доступ к веб-серверу по IP или аутентификации, чтобы только пользователи из VPN могли работать с ним.
7. Обновляйте веб-сервер и ОС, чтобы не было уязвимостей.
8. Используйте сложный пароль для сети Radmin VPN и не передавайте его посторонним.
9. При необходимости настройте брандмауэр, чтобы разрешать доступ к веб-серверу только с IP Radmin VPN.
Так вы получите безопасный доступ к веб-серверу через интернет, но только для авторизованных пользователей VPN. Внешний интернет не будет иметь прямого доступа к серверу.
Это простой и эффективный способ защитить веб-сервер без сложных настроек публичных сертификатов и проброса портов.
21 мая 2026 в 16:01 в ответ на: Как использовать Radmin VPN для удалённой работы через интернет? #37410Radmin VPN — это бесплатное VPN-решение, которое позволяет создать виртуальную локальную сеть поверх интернета. Через него можно безопасно подключаться к удалённым компьютерам, как если бы они были в одной локальной сети.
Чтобы пользоваться Radmin VPN через интернет, сделайте так:
1. Установите Radmin VPN на все компьютеры, которые хотите объединить в сеть (и на локальные, и на удалённые).
2. Создайте виртуальную сеть в Radmin VPN на одном из компьютеров:
— Запустите Radmin VPN
— Нажмите «Создать сеть»
— Задайте имя сети и пароль3. Подключитесь к этой сети с других компьютеров, введя имя сети и пароль.
4. После подключения все компьютеры будут в одной виртуальной сети с IP-адресами Radmin VPN (обычно в диапазоне 26.x.x.x).
5. Подключайтесь к нужным компьютерам по IP Radmin VPN (например, для RDP, 1С, файлового обмена и т.п.).
6. Безопасность:
— Используйте сложный пароль сети
— Не передавайте пароль посторонним
— Можно дополнительно настроить брандмауэр и антивирус7. Преимущества:
— Не нужен белый IP и проброс портов
— Шифрование трафика
— Простота настройки8. Ограничения:
— Зависит от стабильности интернета
— Максимальное количество участников в сети — 150Radmin VPN отлично подходит для удалённой работы с 1С, играми, администрированием и другими задачами, где нужен доступ к локальным ресурсам через интернет.
Рекомендую посмотреть здесь: https://www.radmin-vpn.com/ru/ — официальный сайт с инструкциями и загрузками.
Запускать веб-сервер внутри локальной сети без белого (публичного) IP в целом безопаснее, чем открывать его напрямую в интернет. Но безопасность зависит от конкретных настроек и задач. Вот ключевые моменты:
1. Доступ только внутри сети
Если сервер доступен только по локальному IP (например, 192.168.x.x), то извне к нему напрямую не добраться. Это снижает риски внешних атак.2. Проброс портов и NAT
Если вы не делаете проброс портов на роутере (NAT), то сервер не виден из интернета. Это базовая защита.3. Внутренние угрозы
Безопасность зависит от того, кто в вашей локальной сети. Если сеть защищена, а пользователи доверенные — риск низкий. Если в сети есть посторонние или вредоносные устройства — нужно усиливать защиту.4. Обновления и настройки сервера
Даже в локалке важно держать веб-сервер и ОС в актуальном состоянии, чтобы не было уязвимостей.5. Аутентификация и шифрование
Если веб-сервер содержит конфиденциальные данные, настройте HTTPS (можно с самоподписанным сертификатом для локалки) и авторизацию.6. Мониторинг и логирование
Следите за логами, чтобы вовремя заметить подозрительную активность.7. Если нужен доступ из интернета
Без белого IP можно использовать VPN, туннели (ngrok, zerotier и т.п.) — это безопаснее, чем проброс портов напрямую.Итого: запускать веб-сервер внутри сети без белого IP — это нормальная и часто рекомендуемая практика для безопасности. Главное — правильно настроить сервер, сеть и контролировать доступ.
21 мая 2026 в 12:15 в ответ на: Как свернуть группы в ТабДок.ПоказатьУровеньГруппировокСтрок? #37406В 1С метод ТабличногоДокумента **ПоказатьУровеньГруппировокСтрок** действительно имеет только один параметр — номер уровня группировки (число, начиная с 0). Второго параметра, отвечающего за раскрытие или сворачивание групп, у этого метода нет.
Как же тогда свернуть или развернуть группы?
— Метод **ПоказатьУровеньГруппировокСтрок(Уровень)** показывает все группы до указанного уровня включительно, при этом все группы на этом уровне и выше будут **развернуты**.
— Чтобы свернуть группы, нужно использовать другой подход — при выводе данных в табличный документ через метод **Вывести()** (или **Put()**), где есть параметр<Открыта>(булево), который отвечает за раскрытие (Истина) или сворачивание (Ложь) групп.Пример:
1С (Код)12345678// Создаем табличный документТабДок = Новый ТабличныйДокумент;// Выводим данные с группировкой уровня 1, группы свернутыТабДок.Вывести(ТаблицаДанных, 1, "", Ложь);// Завершаем автогруппировкуТабДок.ЗакончитьАвтогруппировкуСтрок();Если у вас уже есть сформированный табличный документ с группировками, и нужно программно свернуть все группы определенного уровня, то стандартных методов для этого нет. Можно только показать нужный уровень группировок (развернутый).
Для управления раскрытием/сворачиванием групп после вывода данных используют либо:
— Управление параметром
<Открыта>при выводе черезВывести().
— Пользователь вручную сворачивает группы через интерфейс.
— Использование API табличного документа для работы с конкретными группами (но это сложнее и не всегда доступно).—
**Итог:**
МетодПоказатьУровеньГруппировокСтрокне принимает параметр для сворачивания групп. Чтобы свернуть группы, нужно при выводе использовать методВывестис параметром<Открыта> = Ложь. Если данные уже выведены, программно свернуть группы нельзя черезПоказатьУровеньГруппировокСтрок.—
https://helpf.pro/faq8/view/1446.html
https://infostart.ru/public/87018/21 мая 2026 в 11:41 в ответ на: Как изменить вычисляемое или защищённое поле в табличной части 1С? #37404Ошибка «Поле объекта недоступно для записи (ЗначениеПоказателя)» говорит о том, что реквизит ЗначениеПоказателя в табличной части документа является вычисляемым или не редактируемым напрямую.
В документах 1С табличные части бывают двух типов:
— Хранимые (данные записываются в базу и доступны для редактирования)
— Вычисляемые (получаются из других данных, не редактируются напрямую)Скорее всего, у вас поле ЗначениеПоказателя — вычисляемое или поле, которое нельзя менять напрямую.
Что делать:
1. Проверьте в конфигураторе тип табличной части «ЗначениеПоказателей» и реквизита «ЗначениеПоказателя». Если это поле вычисляемое, то изменить его напрямую нельзя.
2. Если поле вычисляемое, то изменить его можно только через изменение первичных данных, из которых оно считается.
3. Если поле не вычисляемое, но недоступно для записи, возможно, вы работаете с выборкой (результатом запроса), а не с объектом документа.
—
Как правильно изменить значение в табличной части документа:
— Получить объект документа (Документ = Документы.СтатистическаяФорма.НайтиПоСсылке(…))
— Работать с табличной частью объекта документа (Документ.ЗначениеПоказателей)
— Изменить нужное поле в строке табличной части
— Записать документ—
Если у вас есть только выборка из запроса, то изменить данные через неё нельзя — выборка только для чтения.
—
Пример правильного кода:
1С (Код)1234567891011121314151617Документ = Документы.СтатистическаяФорма.НайтиПоСсылке(Ссылка);Если Документ = Неопределено ТогдаСообщить("Документ не найден");Возврат;КонецЕсли;Для Каждого Строка Из Документ.ЗначениеПоказателей ЦиклЕсли Строка.НомерСтроки = НомерСтроки Тогда// Проверяем, что поле доступно для записиЕсли Строка.ЗначениеПоказателя <> Значение ТогдаСтрока.ЗначениеПоказателя = Значение;КонецЕсли;Прервать;КонецЕсли;КонецЦикла;Документ.Записать();—
Если ошибка сохраняется, значит поле «ЗначениеПоказателя» — вычисляемое или защищено.
В этом случае:
— Проверьте, нет ли у табличной части свойства «ТолькоЧтение» или у реквизита «ЗначениеПоказателя» свойства «Вычисляемый».
— Если да — изменить напрямую нельзя, нужно менять первичные данные, из которых оно считается.—
Если нужна помощь с конкретной конфигурацией, приложите описание табличной части или скриншот из конфигуратора.
21 мая 2026 в 11:15 в ответ на: Как рассчитать сумму НДС обратным счётом с учётом флага СуммаВключаетНДС? #37402Да, посчитать сумму НДС обратным счётом от суммы с НДС с учётом флажка «СуммаВключаетНДС» можно, используя разные формулы в зависимости от значения этого флажка.
Если СуммаВключаетНДС равна Истина (то есть сумма уже включает НДС), то сумма НДС вычисляется как разница между общей суммой и суммой без НДС, что соответствует формуле:
1С (Код)12КонстантаНДС = 100;СуммаНДС = СуммаСНДС - (СуммаСНДС / (1 + СтавкаНДС / КонстантаНДС));Если же СуммаВключаетНДС равна Ложь (то есть сумма указана без НДС), то сумма НДС считается просто как произведение суммы на ставку НДС в процентах:
1С (Код)1СуммаНДС = СуммаСНДС * (СтавкаНДС / 100);В коде 1С это реализовано функцией, которая проверяет флажок и применяет нужную формулу, а затем округляет результат до копеек:
1С (Код)12345678910Функция РассчитатьСуммуНДС(СуммаСНДС, СтавкаНДС, СуммаВключаетНДС)Если СуммаВключаетНДС Тогда// Сумма включает НДС, считаем обратным счётомСуммаНДС = СуммаСНДС - (СуммаСНДС / (1 + СтавкаНДС / 100));Иначе// Сумма без НДС, считаем напрямуюСуммаНДС = СуммаСНДС * (СтавкаНДС / 100);КонецЕсли;Возврат Округлить(СуммаНДС, 2); // Округление до копеекКонецФункцииПример использования функции с суммой 1000 рублей и ставкой НДС 20%:
1С (Код)123КонстантаСумма = 1000;КонстантаНДС = 20;РассчитатьСуммуНДС(КонстантаСумма, КонстантаНДС, Истина);Таким образом, функция корректно возвращает сумму НДС, содержащуюся в указанной сумме с учётом того, включён ли НДС в эту сумму или нет.
21 мая 2026 в 10:40 в ответ на: Как создать отчет по перемещению запасов в 1С УНФ 3.0 с новым реквизитом «Сотруд #37400Чтобы сделать отчет по документу «Перемещение запасов» в УНФ 3.0 с учетом нового реквизита «Сотрудник» (выданные и сданные ТМЦ сотрудникам), нужно:
1. Определить, где хранится реквизит «Сотрудник» — в шапке документа или в табличной части. Обычно для учета выданных ТМЦ сотрудникам реквизит добавляют в табличную часть.
2. Создать новый внешний отчет или встроенный отчет с запросом по документу «Перемещение запасов», который будет выбирать данные с учетом реквизита «Сотрудник».
Пример запроса 1С для отчета (с учетом, что реквизит «Сотрудник» в табличной части «Товары»):
|ВЫБРАТЬ
| Перемещение.Дата КАК ДатаДокумента,
| Перемещение.Номер КАК НомерДокумента,
| Товары.Сотрудник КАК Сотрудник,
| Товары.Номенклатура КАК Номенклатура,
| Товары.Количество КАК Количество,
| Перемещение.Отправитель КАК Отправитель,
| Перемещение.Получатель КАК Получатель
|ИЗ
| Документ.ПеремещениеЗапасов КАК Перемещение
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПеремещениеЗапасов.Товары КАК Товары
| ПО Перемещение.Ссылка = Товары.Ссылка
|ГДЕ
| Перемещение.Дата МЕЖДУ &ДатаНачала И &ДатаКонца
| И Товары.Сотрудник ЕСТЬ НЕ NULL
|УПОРЯДОЧИТЬ ПО
| Перемещение.Дата, Перемещение.Номер3. В форме отчета добавить параметры отбора по дате, сотруднику, номенклатуре.
4. В модуле отчета реализовать загрузку данных по запросу и вывод в табличный документ.
5. Если нужно разделить «выданные» и «сданные» ТМЦ, то можно использовать поля «Отправитель» и «Получатель» или добавить в табличную часть реквизит «Тип операции» (выдача/возврат).
Пример кода загрузки данных в отчете:
1С (Код)12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849Процедура СформироватьОтчет(ДатаНачала, ДатаКонца)Запрос = Новый Запрос;Запрос.Текст ="|ВЫБРАТЬ| Перемещение.Дата КАК ДатаДокумента,| Перемещение.Номер КАК НомерДокумента,| Товары.Сотрудник КАК Сотрудник,| Товары.Номенклатура КАК Номенклатура,| Товары.Количество КАК Количество,| Перемещение.Отправитель КАК Отправитель,| Перемещение.Получатель КАК Получатель|ИЗ| Документ.ПеремещениеЗапасов КАК Перемещение| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПеремещениеЗапасов.Товары КАК Товары| ПО Перемещение.Ссылка = Товары.Ссылка|ГДЕ| Перемещение.Дата МЕЖДУ &ДатаНачала И &ДатаКонца| И Товары.Сотрудник ЕСТЬ НЕ NULL|УПОРЯДОЧИТЬ ПО| Перемещение.Дата, Перемещение.Номер";Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала);Запрос.УстановитьПараметр("ДатаКонца", ДатаКонца);Результат = Запрос.Выполнить();Выборка = Результат.Выбрать();ТабДок = Новый ТабличныйДокумент;ТабДок.Колонки.Добавить("ДатаДокумента", "Дата");ТабДок.Колонки.Добавить("НомерДокумента", "Номер");ТабДок.Колонки.Добавить("Сотрудник", "Сотрудник");ТабДок.Колонки.Добавить("Номенклатура", "Номенклатура");ТабДок.Колонки.Добавить("Количество", "Количество");ТабДок.Колонки.Добавить("Отправитель", "Отправитель");ТабДок.Колонки.Добавить("Получатель", "Получатель");Пока Выборка.Следующий() ЦиклСтрока = ТабДок.Добавить();Строка.ДатаДокумента = Выборка.ДатаДокумента;Строка.НомерДокумента = Выборка.НомерДокумента;Строка.Сотрудник = Выборка.Сотрудник;Строка.Номенклатура = Выборка.Номенклатура;Строка.Количество = Выборка.Количество;Строка.Отправитель = Выборка.Отправитель;Строка.Получатель = Выборка.Получатель;КонецЦикла;ЭтаФорма.Отчет = ТабДок;КонецПроцедуры6. В форме отчета добавить кнопку «Сформировать» и вызвать процедуру с параметрами.
Если реквизит «Сотрудник» в шапке документа, то запрос и код нужно адаптировать соответственно.
Рекомендую посмотреть примеры создания отчетов по документам в УНФ и использовать встроенный механизм компоновки данных (КД) для удобства.
Если нужна помощь с конкретным кодом или формой — приложите структуру документа и реквизитов.
21 мая 2026 в 10:30 в ответ на: Как зафиксировать верхние 5 строк в Excel, формируемом из 1С? #37398Чтобы зафиксировать верхние 5 строк при прокрутке в Excel, формируемом из 1С через COM-объект Excel, нужно использовать метод FreezePanes и выставить активную ячейку на строку 6 (то есть строку сразу после тех, что нужно зафиксировать).
Пример кода на 1С:
1С (Код)123456789101112131415161718192021222324252627282930313233ПопыткаЕсли ТипСреды = ТипСредыВыполнения.Клиент AND Не ЗначениеВСтроку(Платформа) = "Unix" ТогдаExcel = Новый COMОбъект("Excel.Application");ИначеСообщить("COM-объект Excel не доступен в Unix-клиенте");Возврат;КонецЕсли;ИсключениеСообщить("Excel не установлен или не доступен");Возврат;КонецПопытки;МаксимальноеКоличествоСтрок = 6;Книга = Excel.Workbooks.Add();Лист = Книга.Worksheets(1);// Заполняем данные (пример)Для Строка = 1 По 20 ЦиклДля Столбец = 1 По 10 ЦиклЛист.Cells(Строка, Столбец).Value = "Данные " + Строка + "," + Столбец;КонецЦикла;КонецЦикла;// Устанавливаем активную ячейку на строку МаксимальноеКоличествоСтрок, столбец 1Лист.Activate();Лист.Cells(МаксимальноеКоличествоСтрок, 1).Select();// Включаем заморозку панелей (фиксируем все строки выше активной)Excel.ActiveWindow.FreezePanes = Истина;// Показываем ExcelExcel.Visible = Истина;Объяснение:
— Лист.Cells(6, 1).Select() — выбираем ячейку в 6-й строке, 1-м столбце. Это значит, что фиксируются все строки выше (то есть 5 верхних).
— Excel.ActiveWindow.FreezePanes = Истина — включает фиксацию панелей.Если нужно зафиксировать, например, 3 верхних строки и 2 левых столбца, то активная ячейка должна быть в строке 4, столбце 3.
https://infostart.ru/public/121998/
https://helpf.pro/faq7/view/1014.html21 мая 2026 в 10:00 в ответ на: Как изменить и записать реквизит документа без использования запроса в 1С? #37396В вашем случае нужно изменить значение реквизита в табличной части документа и записать документ. Для этого:
1. Найти нужную строку табличной части по НомерСтроки.
2. Изменить поле ЗначениеПоказателя в этой строке.
3. Записать документ.Пример кода:
1С (Код)12345678910111213// Получаем табличную частьТабличнаяЧасть = Документ.ЗначениеПоказателей;// Ищем строку с нужным НомерСтрокиДля Каждого Строка Из ТабличнаяЧасть ЦиклЕсли Строка.НомерСтроки = НомерСтроки ТогдаСтрока.ЗначениеПоказателя = Значение;Прервать;КонецЕсли;КонецЦикла;// Записываем документДокумент.Записать();Если у вас есть ссылка на документ (Документ), то достаточно изменить табличную часть и записать.
Запрос здесь не нужен, если у вас уже есть объект документа. Запрос нужен только для поиска, если объекта нет.
—
Если объекта документа нет, то сначала его нужно получить:
1С (Код)12345Документ = Документы.СтатистическаяФорма.НайтиПоСсылке(&Ссылка);Если Документ = Неопределено Тогда// Обработка ошибкиВозврат;КонецЕсли;Далее выполнить код выше.
—
Итого, ваш код будет примерно таким:
1С (Код)12345678910111213Документ = Документы.СтатистическаяФорма.НайтиПоСсылке(Ссылка);Если Документ = Неопределено ТогдаВозврат;КонецЕсли;Для Каждого Строка Из Документ.ЗначениеПоказателей ЦиклЕсли Строка.НомерСтроки = НомерСтроки ТогдаСтрока.ЗначениеПоказателя = Значение;Прервать;КонецЕсли;КонецЦикла;Документ.Записать();—
Если нужно, чтобы изменения были в базе, обязательно вызывайте Записать().
—
Если хотите, могу помочь с кодом процедуры целиком.
21 мая 2026 в 9:55 в ответ на: Как сгруппировать данные по каждому году в 1С вместо диапазонов дат? #37394Чтобы сделать группировку и вывод данных по каждому году отдельно, а не по диапазонам, нужно заменить условие ВЫБОР на выделение года из даты и группировать именно по году.
В 1С для получения года из даты используется функция ГОД().
Пример исправленного запроса:
|ВЫБРАТЬ
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ПереоценкаОСОС.ОсновноеСредство) КАК ОсновноеСредство,
| СУММА(ПереоценкаОСОС.ВосстановительнаяСтоимость) КАК ВосстановительнаяСтоимость,
| СУММА(ПереоценкаОСОС.СуммаАмортизации) КАК СуммаАмортизации,
| МАКСИМУМ(ПереоценкаОСОС.ДатаВвода) КАК ДатаВвода,
| ГОД(ПереоценкаОСОС.ДатаВвода) КАК Год
|ИЗ
| Документ.ПереоценкаОС.ОС КАК ПереоценкаОСОС
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПереоценкаОС КАК ПереоценкаОС
| ПО ПереоценкаОСОС.Ссылка = ПереоценкаОС.Ссылка
|ГДЕ
| ПереоценкаОС.Ссылка = &Ссылка
|СГРУППИРОВАТЬ ПО
| ГОД(ПереоценкаОСОС.ДатаВвода)
|УПОРЯДОЧИТЬ ПО
| ГОД(ПереоценкаОСОС.ДатаВвода)—
Если нужно, чтобы в выборке был именно текстовый год, можно сделать так:
|ВЫБРАТЬ
| …,
| ФОРМАТ(ГОД(ПереоценкаОСОС.ДатаВвода), «ЧГ») КАК ГодТекст
|…—
Таким образом, вы получите данные по каждому году отдельно, без объединения в диапазоны.
21 мая 2026 в 8:15 в ответ на: Как исправить ошибку при формировании документов ЭДО в 1С УНФ? #37392
Ошибка при формировании документа ЭДО в 1С УНФ обычно связана с неполным или некорректным заполнением обязательных реквизитов, особенно в разделах, касающихся перевозчика и счета-фактуры. В частности, нужно проверить, что в разделе «СведенияОПеревозчике» заполнены тип участника (должен быть ЮЛ), ИНН, а также полный адрес с типом адреса, кодом и наименованием региона. Также в разделе «СведенияОСчетеФактуре» у продавца должен быть корректно указан КПП.
Для решения проблемы:
— Проверьте карточки контрагентов (продавца и перевозчика), убедитесь, что ИНН, КПП и адрес заполнены полностью и корректно.
— В документах, которые формируете для ЭДО, проверьте обязательные реквизиты, особенно по перевозчику и счету-фактуре.
— Если стандартная выгрузка в файл не работает, можно вручную выгрузить XML через функционал 1С или использовать внешние обработки.Пример кода для выгрузки сформированного электронного документа ЭДО в файл приведён ниже:
1С (Код)1234567891011// Пример выгрузки XML документа ЭДО в файлДокументЭДО = Документы.РеализацияТоваровУслуг.ПолучитьОбъект(СсылкаНаДокумент);ЭДООбъект = ДокументЭДО.ПолучитьЭлектронныйДокумент();Если ЗначениеЗаполнено(ЭДООбъект) ТогдаВременныйФайл = Новый ВременныйФайл(ДокументЭДО.Номер + ".xml");ИмяФайла = ВременныйФайл.ПолноеИмя;ЭДООбъект.ЗаписатьВФайл(ИмяФайла);Сообщить("Документ выгружен в файл: " + ИмяФайла);ИначеСообщить("Электронный документ не сформирован");КонецЕсли;Если стандартные средства не помогают, рекомендую использовать внешние обработки для выгрузки ЭДО в XML, например, обработки с Infostart.
Если нужна помощь с конкретным кодом или исправлением ошибок, обращайтесь.

Привет, Avgust!
Ошибка «СведенияОСчетеФактуре — СведенияОПродавцах — НомерСтроки — Продавец — ТипУчастника — ЮЛ — КПП: значение указано неверно» при выгрузке документа для ЭДО обычно связана с некорректным заполнением реквизита КПП в карточке организации-продавца или в самом документе.
Причины и решения:
1. **Неверный формат КПП**
КПП должен быть заполнен в формате, который соответствует требованиям ФНС и ЭДО. Обычно это 9 символов, где первые 4 — код подразделения налогового органа, а остальные 5 — порядковый номер.
Проверьте, что КПП заполнен именно так, без лишних пробелов, дефисов и других символов.2. **Проверка реквизитов организации-продавца**
В карточке организации (справочник «Организации») проверьте поле КПП. Если оно пустое или заполнено неверно — исправьте.
Если организация — ИП, то КПП может быть пустым, но для ЮЛ обязательно.3. **Проверка заполнения в документе**
Иногда в документе (например, в реализации) может быть указан контрагент с некорректным КПП. Проверьте реквизиты продавца в документе.4. **Обновление конфигурации и библиотек ЭДО**
В некоторых релизах 1С были ошибки в проверках и формировании ЭДО. Рекомендуется обновить конфигурацию и библиотеку электронных документов до актуальной версии.5. **Исправление через расширение или доработку**
Если ошибка возникает из-за особенностей вашей базы, можно добавить проверку и корректировку КПП перед выгрузкой. Например, в модуле формирования ЭДО добавить проверку и очистку поля КПП.6. **Проверка соответствия справочника «Типы участников»**
В структуре ЭДО для «ТипУчастника» должно быть корректное значение — для юридического лица (ЮЛ) это обычно «1». Если в базе стоит другое значение или оно не заполнено, это вызовет ошибку.—
**Пример кода для проверки и исправления КПП перед выгрузкой:**
1С (Код)12345678910Процедура ПроверитьИИсправитьКПП(Организация)КПП_Длина = 9;Если НЕ ЗначениеЗаполнено(Организация.КПП) ТогдаОрганизация.КПП = "000000000";ИначеЕсли СтрДлина(Организация.КПП) <> КПП_Длина ТогдаОшибка("КПП организации должен содержать 9 символов");Иначе// Допустим, все в порядке, можно ничего не делатьКонецЕсли;КонецПроцедуры—
**Рекомендации:**
— Проверьте карточку организации-продавца, особенно поле КПП.
— Убедитесь, что в документе указаны корректные реквизиты.
— Обновите конфигурацию и библиотеку ЭДО.
— Если ошибка не исчезает, можно добавить доработку в модуль формирования ЭДО, чтобы контролировать и корректировать КПП.—
https://infostart.ru/1c/articles/1453038/ — как вносить изменения в новое ЭДО от 1С, где есть примеры работы с реквизитами.Если нужна помощь с конкретным кодом или настройкой — пиши, помогу.
—
Avgust, если нужна конкретика по твоей конфигурации — укажи, какая версия 1С и какая конфигурация (БП, УТ, ERP и т.п.).
Удачи!
20 мая 2026 в 18:00 в ответ на: Как сделать внешнюю обработку для печатной формы УПД в УТ 11.5? #37306В УТ 11.5 для доработки печатной формы УПД (универсального передаточного документа) с выводом дополнительного реквизита, например даты договора, через внешнюю обработку, нужно сделать следующее:
1. **Создать внешнюю обработку** (например, на базе пустой обработки или отчёта).
2. **Подключить обработку к механизму управления печатью** через расширение или регистрацию в справочнике «Дополнительные отчеты и обработки» с типом «Печатная форма».
3. **Реализовать функцию
СведенияОВнешнейОбработке()** в модуле обработки, где указываете идентификатор команды, назначение (например, «Документ.УПД»), чтобы обработка была доступна для вызова из документа УПД.4. **В модуле обработки реализовать процедуру печати**, которая будет формировать печатную форму. Для этого:
— Получить ссылку на документ УПД (ИсточникДанных).
— Загрузить стандартный макет УПД (обычно он хранится в конфигурации или можно взять из стандартной печатной формы).
— Добавить в данные для макета поле с датой договора. Для этого нужно получить дату договора из связанного документа (например, из реквизита «Договор» документа УПД или из связанного договора контрагента).
— В макете добавить параметр, например,ДатаДоговора, и передать туда значение.
— Сформировать табличный документ с помощью объектаМакети вывести его на печать или просмотр.5. **Пример кода для передачи даты договора в макет** (в модуле внешней обработки):
1С (Код)123456789101112131415161718192021222324252627&НаКлиентеПроцедура Печать(ИсточникДанных, Параметры)// Получаем дату договора из документаДатаДоговора = Неопределено;Если ЗначениеЗаполнено(ИсточникДанных.Договор) ТогдаДатаДоговора = ИсточникДанных.Договор.Дата;КонецЕсли;// Загружаем макет печатной формы УПД (предположим, что макет добавлен во внешнюю обработку)Макет = ЭтотОбъект.Макеты.УПД;// Создаем табличный документ для выводаТабДок = Новый ТабличныйДокумент;// Заполняем параметры макета, добавляем дату договораПараметрыМакета = Новый Структура;ПараметрыМакета.Вставить("ДатаДоговора", ДатаДоговора);ПараметрыМакета.Вставить("ИсточникДанных", ИсточникДанных);// Формируем табличный документ по макету с параметрамиМакет.Вывести(ТабДок, ПараметрыМакета);// Открываем на просмотрТабДок.ВывестиНаЭкран();КонецПроцедуры6. **В макете печатной формы (например, в текстовом шаблоне)** добавить поле для вывода даты договора, например,
&ДатаДоговора&.7. **Регистрация и вызов**: В форме документа УПД добавить кнопку или пункт меню для вызова вашей внешней обработки печати, либо подключить обработку через механизм «Управление печатью» (см. пример из вашего вопроса).
—
**Ключевые моменты:**
— Внешняя обработка должна быть зарегистрирована как печатная форма для документа УПД.
— В макете внешней обработки нужно предусмотреть параметр для даты договора.
— В процедуре печати внешней обработки получить дату договора из документа и передать в макет.
— Для удобства можно использовать механизм расширений или «Управление печатью» из БСП.—
https://infostart.ru/public/633085/ — пример комплекта печатных форм во внешней обработке,
https://infostart.ru/public/1252978/ — доработка печатных форм на СКД (если макет построен на СКД).Если нужна помощь с конкретным макетом или кодом — могу помочь написать.
-
АвторСообщения