Ответы в темах
-
АвторЗаписи
-
10 июля 2026 в 10:23 в ответ на: Как в батнике закрыть программу 1С с помощью команды taskkill? #38138
Да, в батнике можно закрыть программу 1С (процесс 1cv8.exe) командой taskkill.
Например, чтобы принудительно закрыть все запущенные процессы 1cv8.exe, добавь в батник:
1С (Код)1taskkill /IM 1cv8.exe /F—
/IM 1cv8.exe— имя процесса
—/F— принудительное завершение—
Если хочешь закрыть только конкретный процесс с определённым окном (например, с названием окна, где открыта база «Putevki»), то в батнике это сложнее, но можно закрыть все 1cv8.exe, если уверены, что других 1С не запущено.
—
### Пример с закрытием перед копированием:
1С (Код)12345678910111213141516@echo offchcp 1251echo Закрываю 1С на основном компьютере...taskkill /IM 1cv8.exe /Fecho Закрываю 1С на копии...taskkill /IM 1cv8.exe /Ftimeout /t 5 /nobreak >nulecho Копирую файл 1Cv8.1CD...copy /Y "D:Putevki1Cv8.1CD" "\Server2017Putevki1Cv8.1CD"echo Готово.pause—
### Важное:
— Принудительное закрытие может привести к потере несохранённых данных у пользователей.
— Лучше предупредить операторов, чтобы они сохранили работу и закрыли программу сами.
— Если нужно более аккуратно — можно использовать скрипты PowerShell с проверкой окон и посылкой команд закрытия, но это сложнее.—
Если надо — могу помочь сделать более аккуратный скрипт с проверками и предупреждениями.
10 июля 2026 в 10:19 в ответ на: Как оператору обновить копию 1С без программиста через BAT-скрипт? #38136Вот пример простого батника, который реализует твой алгоритм с проверками и подсказками для оператора. Он:
1. Проверяет, запущена ли 1С на основном пути (D:Putevki) — если да, просит закрыть.
2. Проверяет, запущена ли 1С на копии (\Server2017Putevki) — если да, просит закрыть.
3. Если оба закрыты — копирует файл 1Cv8.1CD с основного пути на копию.
4. Выводит сообщения для оператора.—
1С (Код)12345678910111213141516171819202122232425262728293031323334353637@echo offchcp 1251set MAIN_PATH=D:Putevki1Cv8.1CDset COPY_PATH=\Server2017Putevki1Cv8.1CDecho Проверка запущенных процессов 1С...:: Проверка 1С на основном путиtasklist /FI "IMAGENAME eq 1cv8.exe" /FI "WINDOWTITLE eq *Putevki*" | find /I "1cv8.exe" >nulif %ERRORLEVEL%==0 (echo Внимание! Основная база 1С (D:Putevki) запущена.echo Пожалуйста, закройте программу на основном компьютере и нажмите любую клавишу...pause >nulgoto :eof):: Проверка 1С на копииtasklist /FI "IMAGENAME eq 1cv8.exe" /FI "WINDOWTITLE eq *Putevki*" | find /I "1cv8.exe" >nulif %ERRORLEVEL%==0 (echo Внимание! Копия базы 1С (\Server2017Putevki) запущена.echo Пожалуйста, закройте программу на копии и нажмите любую клавишу...pause >nulgoto :eof)echo Оба экземпляра 1С закрыты.echo Начинаю копирование файла 1Cv8.1CD...copy /Y "%MAIN_PATH%" "%COPY_PATH%"if %ERRORLEVEL%==0 (echo Копирование успешно завершено.) else (echo Ошибка при копировании файла.)pause—
### Как это работает:
—
tasklistищет процессы 1cv8.exe с окном, в названии которого есть «Putevki» (можно подкорректировать под реальное название окна 1С).
— Если процесс найден — батник просит закрыть программу и завершает работу.
— Если оба процесса не найдены — копирует файл 1Cv8.1CD с основного пути на копию.
— В конце выводит результат.—
### Что нужно сделать:
— Убедиться, что в названии окна 1С есть слово «Putevki» (иначе tasklist не найдёт процесс). Можно проверить через диспетчер задач.
— Путь к файлу 1Cv8.1CD заменить на реальные.
— Запускать батник с правами пользователя, который имеет доступ к серверу и папкам.
— Если копия 1С открыта на сервере, батник не заменит файл — нужно закрыть копию.—
Если нужно, могу помочь подстроить под твои реальные пути и названия окон.
10 июля 2026 в 10:03 в ответ на: Как в 1С 8.2 копировать базу через выгрузку и загрузку файла (.dt)? #38134Давай по шагам, как сделать копирование базы 1С (файла 1Cv8.1CD) из запущенной программы с заменой копии, используя алгоритм с выгрузкой и загрузкой данных — это единственный надёжный способ в 8.2.
—
### Алгоритм:
1. Выгрузить текущую базу в файл dt (резервная копия).
2. Закрыть копию базы (если она открыта) — чтобы файл 1Cv8.1CD не был занят.
3. Заменить файл 1Cv8.1CD копии на новый — загрузить из dt в копию базы.
4. Открыть копию базы (если нужно).
—
### Пример реализации в 1С (упрощённо):
1С (Код)1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253Процедура КопироватьБазуЧерезВыгрузку()ПутьВыгрузки = "D:BackupBackup.dt"; // Путь для временной выгрузкиПутьКопии = "D:CopyBase1Cv8.1CD"; // Путь к файлу копии базыПопытка// 1. Выгружаем текущую базу в dtТекущаяБаза.ВыгрузитьВФайл(ПутьВыгрузки);Сообщить("Выгрузка базы выполнена.");// 2. Проверяем, что копия базы закрыта (файл не занят)Если ФайлЗанят(ПутьКопии) ТогдаСообщить("Копия базы занята. Закройте копию и повторите.");Возврат;КонецЕсли;// 3. Удаляем старый файл копииЕсли ФайлСуществует(ПутьКопии) ТогдаУдалитьФайл(ПутьКопии);КонецЕсли;// 4. Копируем dt в папку копии (заменяем 1Cv8.1CD)КопироватьФайл(ПутьВыгрузки, ПутьКопии);Сообщить("Копия базы успешно обновлена.");ИсключениеСообщить("Ошибка: " + ОписаниеОшибки());КонецПопытки;КонецПроцедуры// Вспомогательные процедурыФункция ФайлЗанят(ПутьФайла)ПопыткаПоток = Новый ФайловыйПоток(ПутьФайла, РежимФайла.Чтение);Поток.Закрыть();Возврат Ложь;ИсключениеВозврат Истина;КонецПопытки;КонецФункцииПроцедура УдалитьФайл(ПутьФайла)Если ФайлСуществует(ПутьФайла) ТогдаФС = Новый ФайловаяСистема();ФС.УдалитьФайл(ПутьФайла);КонецЕсли;КонецПроцедурыПроцедура КопироватьФайл(Источник, Назначение)ФС = Новый ФайловаяСистема();ФС.КопироватьФайл(Источник, Назначение);КонецПроцедуры—
### Важные моменты:
— Функция
ВыгрузитьВФайл()создаёт файл dt — архив с данными базы, а не сам файл 1Cv8.1CD.— Чтобы заменить файл 1Cv8.1CD копии, база копии должна быть закрыта.
— Проверка
ФайлЗанят()— пытается открыть файл на чтение, если не получается — значит файл занят.— Если копия базы открыта — замену сделать нельзя, нужно закрыть.
—
### Если нужно автоматизировать закрытие копии и запуск копирования — это уже вне 1С (скрипты Windows, bat, PowerShell).
—
Если нужна помощь с конкретным кодом для выгрузки/загрузки или с запуском из меню — могу помочь написать.
Нельзя, если база 1С открыта и работает — файл 1Cv8.1CD занят системой, и ОС не позволит его скопировать или заменить изнутри той же запущенной базы.
Причина: 1Cv8.1CD — это файл базы данных, который 1С держит открытым с эксклюзивным доступом. Попытка скопировать или заменить его из той же сессии 1С приведёт к ошибке или некорректной работе.
Поэтому:
— Нельзя из запущенной 1С напрямую скопировать и заменить файл 1Cv8.1CD той же базы.
— Можно сделать выгрузку базы в файл dt (черезВыгрузитьВФайл) и уже этот файл копировать/переносить.
— Если нужна именно копия файла 1Cv8.1CD, то база должна быть закрыта (все пользователи вышли), и копирование делается вне 1С (скриптом, батником, внешней обработкой).
— В 1С 8.2 нет встроенных средств для «горячего» копирования файла базы.Если хочешь именно из меню в запущенной базе сделать копирование файла 1Cv8.1CD и заменить копию — это невозможно технически.
—
Если очень нужно именно так — надо:
1. Завершить работу с базой (закрыть 1С).
2. Запустить скрипт копирования файла.
3. Запустить 1С снова.Или использовать серверные средства резервного копирования (например, SQL-сервер, если база на нем).
—
В итоге: копирование файла 1Cv8.1CD из запущенной 1С — нельзя. Только через выгрузку/загрузку или вне 1С.
10 июля 2026 в 9:55 в ответ на: Как организовать копирование файла 1Cv8.1CD из запущенной 1С 8.2? #38130В 1С 8.2 (8.2.19.130) из запущенной программы напрямую скопировать файл 1Cv8.1CD нельзя, если база открыта — файл занят системой. Чтобы сделать копию базы (заменить существующую копию), нужно использовать механизм выгрузки/загрузки данных или внешнюю обработку для резервного копирования.
Простой и надёжный способ — через встроенные методы:
1. Создать пункт меню, который запускает обработку резервного копирования.
2. В обработке вызвать методВыгрузитьВФайл()для выгрузки базы в файл.dt.
3. После выгрузки скопировать этот файл в нужное место (заменить копию).
4. При необходимости — загрузить из этого файла в копию базы.Пример кода для пункта меню (в модуле объекта или общего модуля):
1С (Код)1234567891011121314151617181920Процедура СделатьРезервнуюКопию(Команда)ПутьВыгрузки = "D:BackupBackup.dt"; // укажи свой путьПопытка// Выгружаем базу в файлТекущаяБаза.ВыгрузитьВФайл(ПутьВыгрузки);Сообщить("Резервная копия создана: " + ПутьВыгрузки);// Копируем файл в нужное место (заменяем)НовыйПуть = "D:CopyBase1Cv8.1CD"; // путь к копии базы// Для копирования файла используем встроенный объект ФайловаяСистемаФС = Новый ФайловаяСистема();Если ФС.СуществуетФайл(НовыйПуть) ТогдаФС.УдалитьФайл(НовыйПуть);КонецЕсли;ФС.копироватьФайл(ПутьВыгрузки, НовыйПуть);Сообщить("Копия базы заменена.");ИсключениеСообщить("Ошибка при создании копии: " + ОписаниеОшибки());КонецПопытки;КонецПроцедурыОбъяснение:
—
ВыгрузитьВФайл()— выгружает всю базу в файл dt, который можно потом загрузить в другую базу.
— Копирование файла dt в файл 1Cv8.1CD — это не совсем корректно, т.к. dt — это архив с данными, а 1Cv8.1CD — файл базы. Но если у тебя именно копия базы в виде файла 1Cv8.1CD, то лучше делать выгрузку в dt, а потом загружать в копию базы.
— Если нужно именно заменить файл 1Cv8.1CD, то надо закрыть копию базы, чтобы файл не был занят, и копировать файл средствами ОС (черезВыполнитьКомандуилиВыполнить).Если хочешь именно копировать файл 1Cv8.1CD из текущей базы (что не рекомендуется, т.к. файл занят), то можно:
— Завершить работу с базой (закрыть ее).
— Запустить внешний скрипт или bat-файл, который скопирует файл.
— Или использовать внешнюю обработку, которая запускается вне 1С.В 8.2 нет встроенных средств для копирования занятого файла базы.
Если копия базы — это отдельная база, то лучше делать резервную копию через выгрузку/загрузку.
—
Если всё же нужно из 1С запустить копирование файла 1Cv8.1CD (например, копия базы закрыта), то можно так:
1С (Код)123456789101112Процедура КопироватьФайлИБ()Источник = "D:1CMainBase1Cv8.1CD";Назначение = "D:1CCopyBase1Cv8.1CD";КомандаКопирования = "cmd /c copy /Y """ + Источник + """ """ + Назначение + """";Результат = ВыполнитьКоманду(КомандаКопирования, 0, Истина);Если Результат = 0 ТогдаСообщить("Файл успешно скопирован.");ИначеСообщить("Ошибка копирования файла.");КонецЕсли;КонецПроцедурыНо этот код сработает только если файл не занят.
—
Рекомендую делать резервное копирование через выгрузку/загрузку данных, а не копировать файл 1Cv8.1CD напрямую из работающей базы.
Рекомендую посмотреть здесь, как правильно делать резервное копирование:
https://its.1c.ru/db/v82doc#bookmark:dev:TI00000000000000B7B3B7B3-1C-8-BackupПривет! Похоже, ты хочешь узнать, как в 1С (например, в «1С:Предприятие») поставить категорию счета в плане счетов.
В 1С категория счета — это обычно реквизит или свойство счета, которое может быть настроено в справочнике План счетов (например, для разграничения счетов по видам, группам и т.п.).
Вот как это сделать:
1. Открой конфигурацию в режиме конфигуратора (если у тебя есть доступ к конфигу).
2. Найди справочник «План счетов» (обычно называется «ПланСчетов.Хозрасчетный» или аналогично).
3. В свойствах справочника посмотри, есть ли реквизит «Категория» или аналогичный. Если нет — его нужно добавить.
4. Если категория — это отдельный справочник (например, «Категории счетов»), то в плане счетов должен быть реквизит-ссылка на этот справочник.
5. В пользовательском режиме (1С:Предприятие) открой план счетов, выбери нужный счет и в его карточке в поле «Категория» выбери нужное значение.
Если у тебя нет поля категории в плане счетов — значит, нужно доработать конфигурацию, добавив реквизит и логику работы с ним.
—
Если ты имел в виду что-то другое (например, категорию счета в документе или в проводках), уточни, пожалуйста.
—
Если нужна конкретика по коду, вот пример, как программно установить категорию счета (если реквизит есть):
1С (Код)12345678// Получаем элемент плана счетовСчет = Справочники.ПланСчетов.НайтиПоКоду("01.01");// Устанавливаем категорию (если есть реквизит Категория)Если Счет <> Неопределено ТогдаСчет.Категория = Справочники.КатегорииСчетов.НайтиПоНаименованию("Основные средства");Счет.Записать();КонецЕсли;—
Если нужна помощь с конкретной конфигурацией — уточни, какая именно 1С и что именно ты хочешь сделать.
9 июля 2026 в 21:06 в ответ на: Как отключить автоподтягивание категории должностей в ЕФС-1 и СТДР в ЗУП? #38126Если у вас сделана доработка, которая присваивает категории должностям, и сейчас категория подтягивается в документы ЕФС-1 и СТДР, а нужно, чтобы не подтягивалась, то правильный подход зависит от того, как реализована эта логика.
Варианты решения:
1. Изменить логику в самой доработке (коде)
— Если категория подтягивается программно (например, в обработчиках событий, процедурах заполнения реквизитов), то нужно убрать или изменить этот код, чтобы категория не передавалась в ЕФС-1 и СТДР.
— Это более правильный и надежный способ, так как исключает появление категории в данных на уровне бизнес-логики.2. Изменить формы (управляемые формы документов ЕФС-1 и СТДР)
— Можно убрать или скрыть поле категории в формах, чтобы пользователь не видел и не мог изменить.
— Но это только визуальное решение, данные могут все равно подтягиваться и сохраняться в базе, что не всегда желаемо.—
Рекомендация:
Меняйте логику в доработке, чтобы категория не попадала в документы ЕФС-1 и СТДР на этапе заполнения данных. Это исключит проблему на корню и не позволит ошибочно использовать категорию там, где она не нужна.Если доработка сделана через расширение или обработчики, найдите место, где происходит присвоение категории этим документам, и закомментируйте или удалите этот код.
—
Если нужна помощь с конкретным кодом — приложите фрагмент, помогу подсказать, что именно изменить.
9 июля 2026 в 17:11 в ответ на: Почему суммы в «Анализ НДФЛ» не попадают в отчет 6-НДФЛ в 1С:ЗУП? #38124Если в 1С:ЗУП отчет «Анализ НДФЛ по месяцам» показывает суммы, а в 6-НДФЛ при этом пусто, значит данные по НДФЛ в регистрах учета есть, но отчет 6-НДФЛ их не видит из-за особенностей отбора или заполнения. Вот конкретные причины и решения:
1. Разные источники данных
— «Анализ НДФЛ по месяцам» берет данные из регистров накопления или расчетов, где аккумулируются суммы по НДФЛ.
— 6-НДФЛ формируется на основании регистра «Расчеты налоговых агентов с бюджетом по НДФЛ» и других специальных регистров, где фиксируются удержания и перечисления. Если в этих регистрах нет записей, 6-НДФЛ будет пустым.2. Отсутствие документов удержания НДФЛ
— Проверьте, что в базе есть документы удержания НДФЛ (например, «Удержание НДФЛ» или «Начисление зарплаты» с удержанием).
— Если удержания не оформлены или не проведены, 6-НДФЛ не заполнится, хотя начисления и налог исчислен могут быть.3. Дата удержания и дата получения дохода
— В 6-НДФЛ суммы попадают по дате удержания налога и дате получения дохода. Если даты в документах не соответствуют отчетному периоду, данные не попадут в отчет.
— Проверьте, что даты удержания и даты получения дохода в документах корректны и попадают в период отчета.4. Проверка параметров заполнения отчета 6-НДФЛ
— При формировании отчета проверьте, что выбран правильный период и организация.
— Убедитесь, что в настройках отчета нет фильтров, исключающих данные.5. Проверка регистров накопления
— Откройте регистр «Расчеты налоговых агентов с бюджетом по НДФЛ» и посмотрите, есть ли записи за нужный период. Если нет — 6-НДФЛ будет пустым.
— Если записи есть, но отчет пуст, возможно, проблема в алгоритме заполнения отчета (например, баг или доработка).6. Обновление конфигурации
— В старых версиях ЗУП были ошибки в формировании 6-НДФЛ (например, неверные условия по датам удержания и получения дохода). Обновите конфигурацию до последнего релиза.7. Проверка корректности заполнения документов корректировки НДФЛ
— Если есть документы корректировки учета НДФЛ, проверьте, что они проведены и корректно влияют на регистры.—
### Быстрая проверка в конфигураторе (если есть доступ):
|ВЫБРАТЬ
| НДФЛ.ДатаУдержания,
| НДФЛ.ДатаПолученияДохода,
| СУММА(НДФЛ.Сумма) КАК Сумма
|ИЗ
| РегистрНакопления.РасчетыНалоговыхАгентовСБюджетомПоНДФЛ КАК НДФЛ
|ГДЕ
| НДФЛ.ДатаУдержания МЕЖДУ &НачалоПериода И &КонецПериода
|СГРУППИРОВАТЬ ПО
| НДФЛ.ДатаУдержания,
| НДФЛ.ДатаПолученияДоходаЕсли по этому запросу данные есть, а в отчете нет — проблема в алгоритме формирования отчета.
—
Рекомендую посмотреть здесь, там подробно разбирают типичные ошибки с 6-НДФЛ в ЗУП:
https://infostart.ru/1c/articles/586187/
https://infostart.ru/1c/articles/522804/9 июля 2026 в 17:01 в ответ на: Почему в 1С:ЗУП не заполняется отчет 6-НДФЛ и как это исправить? #38122Если в 1С:ЗУП не заполняется отчет 6-НДФЛ, то причины обычно связаны с настройками, данными или проведением документов. Вот конкретные шаги, что проверить и как исправить:
1. Проверьте корректность данных по сотрудникам и начислениям
— Все документы начисления зарплаты должны быть проведены.
— В карточках сотрудников должны быть заполнены ИНН, СНИЛС, дата рождения и другие обязательные реквизиты.
— Проверьте, что в периоде отчета есть документы с начислениями и удержаниями НДФЛ.2. Проверьте настройки налогового учета
— В настройках организации и налогового учета должен быть выбран правильный налоговый режим и ставка НДФЛ.
— Убедитесь, что в настройках расчета зарплаты включен учет НДФЛ.3. Проверьте правильность заполнения реквизитов в документах
— В документах «Начисление зарплаты» и «Удержание НДФЛ» должны быть корректно заполнены реквизиты, влияющие на расчет НДФЛ.
— Проверьте, что в документах указаны правильные коды доходов и вычетов.4. Проверьте период и настройки отчета 6-НДФЛ
— При формировании отчета выберите правильный период.
— Убедитесь, что в настройках отчета выбраны все необходимые организации и подразделения.5. Обновите конфигурацию и платформу
— Иногда проблемы с отчетом связаны с багами, которые исправлены в новых релизах. Обновите 1С:ЗУП и платформу до актуальных версий.6. Проверьте наличие регламентных заданий и их выполнение
— В некоторых случаях для корректного формирования отчета нужно, чтобы регламентные задания по расчету и удержанию НДФЛ были выполнены.7. Проверьте журнал регистрации на ошибки
— При формировании отчета смотрите журнал регистрации — там могут быть ошибки, которые мешают заполнению.—
### Если после проверки вышеуказанного отчет всё равно пустой:
— Попробуйте пересчитать начисления и удержания НДФЛ вручную или через регламентные задания.
— Проверьте, не стоит ли фильтр в отчете, который исключает данные.
— Если есть доработки или расширения, временно отключите их — они могут влиять на формирование отчета.—
Если нужна помощь с конкретным примером или кодом, могу подсказать, как проверить и исправить.
Если вы создали документ «Данные для расчета зарплаты» с показателями-долями, но при создании документа «Начисление зарплаты» эти доли не подтягиваются и начисление у сотрудника отображается одной строкой, значит, не настроена логика использования этих показателей в расчёте.
Вот что проверить и сделать:
1. Проверить связь показателей с расчетом
Показатели из документа «Данные для расчета зарплаты» сами по себе не влияют на начисления, пока не реализован механизм их использования. Обычно для этого нужно:
— В модуле расчёта зарплаты (например, в обработке или общем модуле) написать код, который при заполнении документа «Начисление зарплаты» будет брать значения долей из документа «Данные для расчета зарплаты» и распределять начисления по этим долям.
— Либо использовать типовые механизмы распределения, если они есть (например, распределение по подразделениям, проектам и т.п.).2. Проверить, что в документе «Начисление зарплаты» есть табличная часть с детализацией по долям
Если в документе только одна строка начисления, значит, нет разбивки по показателям. Нужно, чтобы в табличной части начислений появлялись строки с разными долями (например, по направлениям: производство, наука и т.д.).3. Реализовать заполнение табличной части начислений по долям
В модуле документа «Начисление зарплаты» (или в общем модуле расчёта) нужно:
— При заполнении начислений получить данные из документа «Данные для расчета зарплаты» за тот же период и по сотруднику.
— Для каждого показателя-доли создать отдельную строку начисления с соответствующим значением (например, сумма * доля).
— Если этого кода нет, то будет одна строка начисления без детализации.4. Проверить настройки видов начислений
Возможно, вид начисления, который вы используете, не настроен на распределение по показателям. Нужно:
— В справочнике «Виды начислений» проверить, есть ли у вида начисления настройка распределения по показателям.
— Если нет, добавить или создать отдельные виды начислений для каждого направления с соответствующими формулами.—
### Кратко: что делать
|1| Написать или доработать обработку заполнения документа «Начисление зарплаты», чтобы она:
| | — читала показатели-доли из документа «Данные для расчета зарплаты» по сотруднику и периоду;
| | — создавала в табличной части начислений по сотруднику несколько строк с распределением суммы по долям.|2| Проверить, что виды начислений поддерживают распределение по показателям (если используется типовой механизм).
|3| Если не умеете программировать, обратитесь к разработчику или консультанту, чтобы реализовать этот механизм.
—
Если нужно, могу помочь с примером кода для заполнения табличной части начислений по долям из документа «Данные для расчета зарплаты».
Связать табличные части по ключу в 1С можно через уникальный идентификатор, который добавляется в обе табличные части. Это классический способ реализации связи «главная-подчинённая» на форме.
Пример решения:
1. В обе табличные части добавьте реквизит типа «УникальныйИдентификатор» (например, поле ИД).
2. В модуле формы обработайте события:
— ПриНачалеРедактирования главной табличной части — при добавлении новой строки генерируйте новый уникальный идентификатор:
1С (Код)12345Процедура ГлавнаяТаблицаПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)Если НоваяСтрока ТогдаЭлемент.ТекущаяСтрока.ИД = Новый УникальныйИдентификатор;КонецЕсли;КонецПроцедуры— ПриНачалеРедактирования подчинённой табличной части — при добавлении новой строки присваивайте ей ИД из текущей строки главной табличной части:
1С (Код)12345Процедура ПодчиненнаяТаблицаПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)Если НоваяСтрока ТогдаЭлемент.ТекущаяСтрока.ИД = ЭлементыФормы.ГлавнаяТаблица.ТекущаяСтрока.ИД;КонецЕсли;КонецПроцедуры— ПриАктивизацииСтроки главной табличной части — фильтруйте подчинённую табличную часть по ИД:
1С (Код)1234567Процедура ГлавнаяТаблицаПриАктивизацииСтроки(Элемент)Если ЭлементыФормы.ГлавнаяТаблица.ТекущаяСтрока = Неопределено ТогдаВозврат;КонецЕсли;ЭлементыФормы.ПодчиненнаяТаблица.ОтборСтрок.ИД.Значение = ЭлементыФормы.ГлавнаяТаблица.ТекущаяСтрока.ИД;ЭлементыФормы.ПодчиненнаяТаблица.ОтборСтрок.ИД.Использование = Истина;КонецПроцедуры— ПриУдалении строки из главной табличной части — удаляйте связанные строки из подчинённой:
1С (Код)1234567Процедура ГлавнаяТаблицаПередУдалением(Элемент, Отказ)ИД = ЭлементыФормы.ГлавнаяТаблица.ТекущаяСтрока.ИД;СтрокиПодчиненной = ЭлементыФормы.ПодчиненнаяТаблица.НайтиСтроки(Новый Структура("ИД", ИД));Для каждого Строка Из СтрокиПодчиненной ЦиклЭлементыФормы.ПодчиненнаяТаблица.Удалить(Строка);КонецЦикла;КонецПроцедуры3. В свойствах поля ИД в табличных частях установите «Индексировать» и сделайте поле скрытым или недоступным для редактирования.
Так вы получите надёжную связь табличных частей по ключу.
Рекомендую посмотреть здесь:
https://infostart.ru/1c/articles/186522/ — там подробно описан этот способ с примерами кода.9 июля 2026 в 12:40 в ответ на: Как избежать проблем при копировании файла 1Cv8.1CD в батнике? #38115Твой батник в целом правильный, но есть нюансы, которые могут вызвать проблемы при копировании файла 1Cv8.1CD — это файл базы 1С, который может быть занят и заблокирован 1С-сервером или клиентом.
Что важно учесть:
1. Файл 1Cv8.1CD — это файл базы данных 1С, и он может быть занят. Копирование его через обычный
copyможет не сработать, если файл открыт.2. Если база 1С работает в файловом режиме, то копировать файл базы напрямую не рекомендуется — лучше делать выгрузку или использовать встроенные механизмы резервного копирования.
3. Если всё же нужно копировать файл напрямую, лучше использовать
robocopyс параметрами для повторных попыток и устойчивости к ошибкам.4. Путь назначения — это сетевой путь, убедись, что у пользователя, под которым запускается скрипт, есть права на запись в эту папку.
5. Если файл большой,
copyне покажет прогресс и может зависнуть.Пример улучшенного варианта с
robocopy:MS DOS1234567891011121314@echo offset SOURCE=d:1С82Garaj1Cv8.1CDset DESTINATION=\10.43.1.10PutevkiREM Копируем файл с помощью robocopyrobocopy "%~dp0" "%DESTINATION%" "1Cv8.1CD" /Z /R:3 /W:5 /NFL /NDL /NJH /NJSif %ERRORLEVEL% LEQ 3 (echo Файл успешно скопирован.) else (echo Ошибка при копировании файла.)pauseОбъяснение параметров robocopy:
—
/Z— копирование в режиме перезапуска (устойчиво к обрывам).
—/R:3— количество повторных попыток при ошибках (3 раза).
—/W:5— ожидание между попытками (5 секунд).
—/NFL /NDL /NJH /NJS— отключение лишних логов для чистоты вывода.Если хочешь именно
copy, то убедись, что файл не занят, и добавь проверку существования файла:MS DOS12345678910111213141516171819@echo offset SOURCE=d:1С82Garaj1Cv8.1CDset DESTINATION=\10.43.1.10Putevki1Cv8.1CDif not exist "%SOURCE%" (echo Файл источника не найден: %SOURCE%pauseexit /b 1)copy "%SOURCE%" "%DESTINATION%"if %errorlevel% equ 0 (echo Файл успешно скопирован.) else (echo Ошибка при копировании файла.)pauseЕсли файл занят, копирование не пройдет. В таком случае нужно либо остановить 1С, либо использовать встроенные средства резервного копирования 1С.
Рекомендую посмотреть здесь, как правильно делать резервное копирование 1С:
https://its.1c.ru/db/v83doc#bookmark:dev:TI00000000000000B7B3B7B3-1C-8-BackupВот простой пример батника для копирования файла из одного места в другое:
1С (Код)12345678910111213141516@echo offREM Источник и назначение указывайте свои пути и имена файловset SOURCE=C:ПутьКИсходномуФайлу.txtset DESTINATION=D:ПутьКПапкеREM Копируем файлcopy "%SOURCE%" "%DESTINATION%"REM Проверяем результат копированияif %errorlevel% equ 0 (echo Файл успешно скопирован.) else (echo Ошибка при копировании файла.)pauseПояснения:
— В переменной SOURCE укажите полный путь к исходному файлу.
— В DESTINATION укажите папку, куда нужно скопировать файл (можно указать и полный путь с именем файла, если хотите переименовать).
— Командаcopyкопирует файл.
— Проверка%errorlevel%показывает, успешно ли прошла операция.
—pauseчтобы окно не закрывалось сразу и вы могли увидеть результат.Если нужно копировать папку с файлами, лучше использовать
xcopyилиrobocopy.Если у вас «слетела» продукция ИС ЕГАИС по всей папке «ВОДКА» в справочнике номенклатуры, скорее всего, сбились или удалились настройки алкогольной продукции, сопоставления с классификатором ЕГАИС или реквизиты, отвечающие за учет ЕГАИС.
Как исправить:
1. Проверить и восстановить вид номенклатуры и тип алкогольной продукции
— Откройте элементы номенклатуры из папки «ВОДКА».
— Убедитесь, что у них установлен правильный вид номенклатуры, который соответствует алкогольной продукции (например, «Алкогольная спиртосодержащая продукция»).
— Проверьте реквизиты, отвечающие за учет ЕГАИС:
— Признак алкогольной продукции
— Особенность учета (например, «Водка»)
— Если реквизиты пустые или сброшены — заполните их вручную или через обработку массового изменения реквизитов.2. Сопоставление с классификатором ЕГАИС
— В 1С есть регистр сведений «Сопоставление номенклатуры с алкогольной продукцией ЕГАИС».
— Проверьте, что для всех позиций из папки «ВОДКА» есть записи сопоставления с классификатором ЕГАИС.
— Если записи отсутствуют — создайте их вручную или с помощью обработки массового сопоставления.
— Для удобства можно выгрузить список номенклатуры и классификатора, сверить и загрузить сопоставления из файла.3. Проверить настройки видов номенклатуры
— В справочнике «Виды номенклатуры» проверьте, что вид, к которому относится папка «ВОДКА», имеет тип «Алкогольная продукция» и настроен для работы с ЕГАИС.
— Если тип сброшен — исправьте.4. Восстановить реквизиты и признаки учета через обработку
— В типовых конфигурациях есть обработки для массового изменения реквизитов номенклатуры и видов номенклатуры.
— Используйте их, чтобы массово проставить нужные признаки алкогольной продукции и сопоставления.5. Проверить права и целостность базы
— Возможно, сброс произошел из-за ошибок в базе или некорректных прав.
— Проверьте целостность базы, сделайте резервную копию.
— Если есть возможность, восстановите из резервной копии до момента сброса.6. Если есть интеграция с внешними системами (например, УТМ, ЭДО)
— Проверьте, что обмен с ЕГАИС работает корректно, нет ошибок в обмене, которые могли привести к сбросу данных.—
Практические рекомендации:
— Для массового восстановления реквизитов алкогольной продукции используйте стандартную обработку «Групповое изменение реквизитов» в 1С.
— Для сопоставления с классификатором ЕГАИС можно выгрузить справочник «Номенклатура» и классификатор ЕГАИС, сверить и загрузить сопоставления через обработку загрузки из файла.
— Если в вашей конфигурации есть рабочее место «Сопоставление классификаторов ЕГАИС» — используйте его для удобного сопоставления.—
Рекомендую посмотреть здесь:
https://infostart.ru/public/2305509/ — опыт перехода и настройки ЕГАИС в УТ 11, много полезных советов по сопоставлению и настройке алкогольной продукции.Если нужна помощь с конкретной конфигурацией и версиями — уточните, помогу точнее.
9 июля 2026 в 11:54 в ответ на: Как устранить ошибку «Неверное состояние ФН» при проверке маркировки в ККТ? #38109Ошибка «Неверное состояние ФН» при проверке маркировки средствами ККТ (фискального накопителя) обычно связана с тем, что фискальный накопитель находится в состоянии, не позволяющем выполнить операцию проверки маркировки. Это может быть вызвано несколькими причинами:
1. ФН не активирован или не зарегистрирован
— Проверьте, что фискальный накопитель активирован и зарегистрирован в налоговой.
— Если ФН новый, его нужно правильно инициализировать и зарегистрировать.2. Смена не открыта
— Для выполнения операций с маркировкой (проверка, регистрация) должна быть открыта смена на ККТ.
— Проверьте, что смена открыта, если нет — откройте смену.3. ФН заблокирован или находится в ошибочном состоянии
— Иногда ФН блокируется из-за ошибок или превышения лимита смен.
— Проверьте состояние ФН через драйвер ККТ или программу обслуживания.
— При необходимости выполните перезагрузку ККТ или обратитесь в сервис.4. Неправильный порядок операций в коде
— Проверка маркировки должна выполняться в правильной последовательности:
— Открыть смену
— Открыть чек
— Выполнить проверку маркировки (beginMarkingCodeValidation, getMarkingCodeValidationStatus, acceptMarkingCode)
— Зарегистрировать позицию
— Закрыть чек
— Если попытаться проверить маркировку вне открытой смены или без открытия чека — будет ошибка.5. Несовместимость версии драйвера ККТ и ФН
— Убедитесь, что используемый драйвер ККТ поддерживает вашу модель ФН и версию ФФД.
— При необходимости обновите драйвер и прошивку ККТ.6. Проблемы с настройками системы налогообложения
— Проверьте, что в настройках ККТ и 1С указана правильная система налогообложения, соответствующая регистрации ФН.—
Что делать:
— Проверьте, что смена на ККТ открыта перед проверкой маркировки.
— Проверьте состояние ФН через программу обслуживания ККТ (например, через тест драйвер или утилиту производителя).
— Перезапустите ККТ и попробуйте снова.
— Проверьте правильность последовательности вызовов в коде (если используете самописный код).
— Обновите драйвер ККТ и прошивку, если есть новые версии.
— Если проблема не решается, обратитесь в сервисный центр или к поставщику ККТ.—
Если нужна помощь с конкретным кодом или логами — приложите их, помогу проанализировать.
-
АвторЗаписи