Ответы в темах
-
АвторСообщения
-
1 июля 2026 в 14:03 в ответ на: Как резервировать товар для клиента при 100% предоплате на будущие поставки? #38017
Привет! В УТ стандартное резервирование при 100% оплате или предоплате действительно сразу резервирует товар, который есть на складе. Чтобы реализовать твою задачу — когда на складе есть 20 ед, но ты хочешь отгрузить клиенту товар только с следующего поступления или напрямую из Китая — нужно использовать другой подход.
Вот конкретные варианты решения:
1. Резервирование «по мере поступления»
В заказе клиента в поле обеспечения укажи «Резервировать по мере поступления». Тогда товар, который есть на складе, не будет зарезервирован сразу, а резерв будет формироваться только по факту прихода новой партии.
Минус — товар на складе не резервируется и может быть отгружен другому клиенту, если не контролировать.2. Обособленное обеспечение заказов с назначением на будущие поступления
Включи в настройках «Обособленное обеспечение заказов» (НСИ и администрирование → Настройка НСИ и разделов → Склад и доставка).
Создай заказ поставщику из Китая с назначением на заказ клиента. Тогда резерв будет привязан именно к будущему приходу товара, а складской остаток не будет резервироваться.
Таким образом, товар, который есть на складе, останется свободным, а резерв будет «обособлен» под заказ клиента и появится только после прихода.3. Использование отдельного склада «Склад в пути» или «Склад клиента»
Если товар идет напрямую с Китая на склад клиента, можно оформить приход на отдельный склад (например, «Склад в пути» или «Склад клиента»). Резервирование будет происходить именно на этом складе, а основной склад останется свободным.4. Резервирование вручную через документ «Резервирование запасов»
Можно не использовать автоматическое резервирование в заказе клиента, а создавать документ «Резервирование запасов» с указанием конкретных партий и мест хранения, чтобы резервировать только нужный товар (например, только по приходу с Китая).5. В заказе клиента разделить позиции на две строки
— Первая строка — с количеством, которое есть на складе, с обеспечением «К обеспечению» (без резервирования).
— Вторая строка — с количеством, которое будет поставлено с Китая, с обеспечением «Резервировать по мере поступления» или «Обособленное обеспечение».Рекомендую почитать по теме обособленного обеспечения заказов, там подробно описан механизм, который решает именно такие задачи:
https://infostart.ru/1c/articles/1789290/И по резервированию по мере поступления в УТ:
https://infostart.ru/1c/articles/2018520/Такой подход позволит не резервировать товар, который есть на складе, а резервировать только будущие поступления или прямые поставки клиенту.
1 июля 2026 в 13:08 в ответ на: Как в УТ отражать поставку из Китая и приемку товара у клиента? #38015В УТ для отражения поставки товара напрямую клиенту с выездом сотрудника и приемкой товара у клиента, минуя склад, можно использовать следующий подход:
1. Документ «Поступление товаров и услуг» оформляешь с видом операции «Поступление на склад» или «Поступление для реализации» (в зависимости от версии и настроек).
Но в шапке документа указываешь склад, который условно обозначает «Склад у клиента» или «Склад в пути» (можно создать отдельный склад в справочнике «Склады» для таких операций).2. Если в конфигурации нет отдельного склада для таких операций, создаешь новый склад с названием, например, «Склад у клиента» или «Склад в пути». Это позволит отразить факт поступления товара в учет, но не на основном складе.
3. В документе «Поступление» указываешь поставщика (Китай), номенклатуру и количество, а склад — «Склад у клиента».
4. Для фиксации факта проверки и приемки сотрудником можно использовать дополнительный реквизит или отдельный документ (например, «Акт приемки»), либо добавить в документ «Поступление» реквизит «Проверено сотрудником».
5. Далее для реализации клиенту создаешь документ «Реализация товаров и услуг» с отгрузкой с «Склада у клиента». Таким образом, товар сразу учитывается как принятый у клиента, минуя основной склад.
6. Если нужно, можно настроить отчетность и аналитику по такому складу, чтобы видеть остатки товара у клиента.
7. Вариант с использованием «Склада в пути» позволяет учитывать товар, который физически не на основном складе, но уже принят.
Если в УТ есть возможность использовать документ «Поступление на комиссию» или «Поступление на склад клиента» — можно применить и их, но чаще создают отдельный склад для таких операций.
Рекомендую посмотреть пример по работе с «Складом в пути» и прямыми поставками:
https://infostart.ru/1c/articles/186117/ — там описана схема работы с поставками напрямую клиенту и складом у клиента.Такой подход позволит отразить факт приемки товара сотрудником у клиента, без зачисления на основной склад.
Настройки, сохранённые с помощью типового механизма кнопок «Сохранить настройки» и «Загрузить настройки» (выделены на скриншоте), хранятся в таблицах базы данных:
— В управляемых конфигурациях 1С (8.3) — в таблицах _RepSettings и _SystemSettings.
— Эти таблицы содержат настройки с привязкой к пользователю и объекту (отчету, форме и т.п.).—
### Подробности:
— Таблица _RepSettings — хранит настройки именно отчетов.
— Таблица _SystemSettings — хранит настройки форм, списков, других объектов интерфейса.
— В этих таблицах есть поля:
—_UserId— пользователь, которому принадлежат настройки.
—_ObjectKey— идентификатор объекта (например, отчета).
—_SettingsData— двоичные данные с сохранёнными настройками.
—_SettingsPresentation— человекочитаемое представление настройки.—
### Можно ли экспортировать?
— Да, можно выгрузить настройки из этих таблиц и загрузить у другого пользователя.
— Для этого можно использовать SQL-запросы копирования или написать обработку, которая будет выгружать/загружать настройки в файл.—
### Если в конфигурации используется СКД (Система Компоновки Данных):
— Настройки компоновщика данных тоже сохраняются в этих таблицах.
— При сохранении через типовой механизм они автоматически попадают в _RepSettings.—
### Рекомендации:
— Для массового переноса настроек между пользователями — проще всего использовать SQL-запросы копирования из таблиц _RepSettings и _SystemSettings.
— Для обмена настройками между базами — использовать экспорт/импорт настроек через файл (XML), если предусмотрено в конфигурации.—
Рекомендую посмотреть здесь:
https://infostart.ru/public/1100185/ — про хранение и перенос настроек в 1С
https://infostart.ru/1c/articles/644525/ — про копирование настроек через SQL
https://infostart.ru/1c/articles/284557/ — про сохранение настроек СКД в базе1 июля 2026 в 10:55 в ответ на: Как подписаться на событие сканирования в РМК и вызвать обработку маркировки? #38011Объясняю подробнее, как именно «подписаться на событие сканирования в РМК» и где вызвать функцию обработки маркировки.
В типовой конфигурации РМК (Розница 2.3) сканирование штрихкода происходит в форме документа «ЧекККМ» (или аналогичной). Там есть обработчик, который получает строку от сканера.
Чтобы не менять типовой код, нужно сделать расширение (или внешнюю обработку), в котором:
1. Создаёте модуль формы с процедурой, которая будет обрабатывать событие сканирования штрихкода.
2. В расширении подписываетесь на событие формы «ЧекККМ» — событие, которое вызывается при вводе штрихкода (обычно это событие «ОбработкаОповещения» или «ОбработкаВводаШтрихкода»).
3. В этом обработчике получаете строку маркировки (то, что сканер передал).
4. Вызываете вашу функцию
ОбработатьСканированиеМаркировки(СтрокаМаркировки, РМКОбъект), где:—
СтрокаМаркировки— строка, которую получил сканер.—
РМКОбъект— объект текущего документа (например,ЭтотОбъектилиФорма.Объект), чтобы добавить позицию в чек.—
### Пример подключения в расширении:
1С (Код)12345678910&НаКлиентеПроцедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)Если ИмяСобытия = "ScanData" ТогдаСтрокаМаркировки = Параметр[0];// Вызываем вашу функцию обработкиОбработатьСканированиеМаркировки(СтрокаМаркировки, ЭтотОбъект);// Отменяем стандартную обработку, если нужноОтказ = Истина;КонецЕсли;КонецПроцедуры—
### Где взять
ЭтотОбъект?— В модуле формы документа «ЧекККМ» есть переменная
ЭтотОбъект— это сам объект документа, в который добавляются товары.— Если пишете расширение, то в модуле формы расширения у вас будет доступ к
ЭтотОбъектилиФорма.Объект.—
### Итог:
— Подписываетесь на событие сканирования штрихкода (обычно «ScanData» в РМК).
— В обработчике получаете строку маркировки.
— Передаёте её вместе с объектом документа в вашу функцию обработки.
— Функция выделяет GTIN, ищет номенклатуру, добавляет позицию и вызывает выбор упаковки.
—
Если не хотите писать расширение, можно сделать внешнюю обработку, которая запускается вручную и обрабатывает уже введённые маркировки, но это менее удобно.
—
Если нужна помощь с конкретным примером расширения для РМК — могу составить.
1 июля 2026 в 10:53 в ответ на: Как добавить GTIN из маркировки в карточку номенклатуры в 1С:РМК? #38009Вот пример кода расширения (или внешней обработки) для 1С:Розница 2.3, который перехватывает ввод маркировки в РМК, выделяет из DataMatrix только GTIN (EAN13), и корректно связывает его с номенклатурой и характеристикой, а затем вызывает стандартное окно выбора упаковки (потребительской).
Основная идея:
— При сканировании маркировки вызывается функция, которая выделяет GTIN из полного кода маркировки.
— По GTIN ищется номенклатура и характеристика.
— В карточку добавляется именно GTIN.
— После этого вызывается стандартное окно сопоставления упаковки.
—
### Пример кода (BSL):
1С (Код)1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374// Функция выделения GTIN из маркировки DataMatrixФункция ПолучитьGTINИзМаркировки(Маркировка)// Пример маркировки: (01)04099979378698(21)54r<KqJ"&l)Yu// Нужно взять 14 цифр после (01), убрать ведущий 0Паттерн = "(s*01s*)(d{14})";РегЭксп = Новый РегулярноеВыражение(Паттерн);Результат = РегЭксп.Найти(Маркировка);Если Результат = Неопределено ТогдаВозврат Неопределено;КонецЕсли;Код = Результат.Получить(1);// Убираем ведущий 0Если Лев(Код,1) = "0" ТогдаКод = Сред(Код,2);КонецЕсли;Возврат Код;КонецФункции// Процедура обработки сканирования маркировки в РМКПроцедура ОбработатьСканированиеМаркировки(СтрокаМаркировки, РМКОбъект)// Получаем GTIN из маркировкиGTIN = ПолучитьGTINИзМаркировки(СтрокаМаркировки);Если GTIN = Неопределено Тогда// Если не удалось выделить GTIN, используем исходную маркировкуGTIN = СтрокаМаркировки;КонецЕсли;// Ищем номенклатуру и характеристику по GTINЗапрос = Новый Запрос;Запрос.Текст =|ВЫБРАТЬ| ШтрихкодыНоменклатуры.Номенклатура,| ШтрихкодыНоменклатуры.Характеристика|ИЗ| РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры|ГДЕ| ШтрихкодыНоменклатуры.Штрихкод = &Штрихкод| И ШтрихкодыНоменклатуры.Активность = ИСТИНА|УПОРЯДОЧИТЬ ПО| ШтрихкодыНоменклатуры.ДатаНачала ДЕСТВИЯ УБЫВ|;Запрос.УстановитьПараметр("Штрихкод", GTIN);Результат = Запрос.Выполнить();Выборка = Результат.Выбрать();Если Выборка.Следующий() ТогдаНоменклатура = Выборка.Номенклатура;Характеристика = Выборка.Характеристика;Иначе// Если не нашли, можно предложить выбрать вручнуюНоменклатура = Неопределено;Характеристика = Неопределено;КонецЕсли;// Добавляем позицию в документ РМК с найденной номенклатурой и характеристикойЕсли Номенклатура <> Неопределено Тогда// Добавляем позицию с GTIN как штрихкодом упаковкиНоваяСтрока = РМКОбъект.Товары.Добавить();НоваяСтрока.Номенклатура = Номенклатура;НоваяСтрока.Характеристика = Характеристика;НоваяСтрока.Количество = 1;// Записываем GTIN в штрихкод упаковки (потребительская упаковка)НоваяСтрока.ШтрихкодУпаковки = GTIN;Иначе// Если не нашли, вызываем стандартное окно выбора номенклатурыРМКОбъект.ВыбратьНоменклатуру();// После выбора можно повторить добавление с GTINКонецЕсли;// Вызвать стандартное окно выбора упаковки (потребительская упаковка)Если РМКОбъект.Товары.Количество() > 0 ТогдаТекущаяСтрока = РМКОбъект.Товары[РМКОбъект.Товары.Количество() - 1];РМКОбъект.ВыбратьУпаковку(ТекущаяСтрока);КонецЕсли;КонецПроцедуры—
### Как использовать:
— В расширении или внешней обработке подписаться на событие сканирования в РМК (например, через обработчик события формы РМК).
— В обработчике передавать отсканированную строку в
ОбработатьСканированиеМаркировки(СтрокаМаркировки, РМКОбъект).—
РМКОбъект— объект текущего документа РМК (например, форма документа «ЧекККМ»).—
### Что делает код:
— Выделяет из маркировки GTIN (EAN13).
— Ищет номенклатуру и характеристику по GTIN в регистре «ШтрихкодыНоменклатуры».
— Добавляет позицию с найденной номенклатурой и характеристикой, записывает GTIN как штрихкод упаковки.
— Вызывает стандартное окно выбора упаковки (потребительская упаковка).
—
Если нужно, могу помочь с примером расширения, которое подключается к РМК и реализует этот функционал полностью. Но в целом, именно так решается задача корректной обработки маркировки без правки типовой конфигурации.
Рекомендую посмотреть примеры работы с маркировкой и расширениями на infostart:
1 июля 2026 в 10:45 в ответ на: Как исправить привязку маркировки как штрихкода в РМК Розница 2.3? #38007В 1С:Розница 2.3 типовая обработка маркировки в РМК действительно иногда привязывает полный DataMatrix (например, (01)04099979378698(21)54r<KqJ»&l)Yu) как штрихкод к номенклатуре, а не выделяет из него EAN13 (4099979378698). Чтобы исправить это без правки типовой конфигурации, можно сделать внешнюю обработку или расширение, которое будет перехватывать ввод марки и преобразовывать её в нужный EAN13.
Что сделать:
1. Создать внешнюю обработку (или расширение) с процедурой, которая будет принимать строку маркировки DataMatrix.
2. В этой процедуре выделять из маркировки EAN13 — это 14 цифр после идентификатора (01), но без ведущего нуля (т.е. 13 цифр EAN13).
3. По выделенному EAN13 искать номенклатуру и характеристику.
4. Возвращать найденную номенклатуру и характеристику в РМК вместо полной маркировки.
Пример кода для выделения EAN13 из маркировки:
|Функция ПолучитьEAN13ИзМаркировки(Маркировка)
| // Пример маркировки: (01)04099979378698(21)54r<KqJ»&l)Yu
| // Нужно взять 14 цифр после (01), убрать ведущий 0
| Паттерн = «(s01s)(d{14})»;
| Результат = РегулярныеВыражения.Найти(Маркировка, Паттерн);
| Если Результат = Неопределено Тогда
| Возврат Неопределено;
| КонецЕсли;
| Код = Результат.Получить(1);
| // Убираем ведущий 0
| Если Лев(Код,1) = «0» Тогда
| Код = Сред(Код,2);
| КонецЕсли;
| Возврат Код;
|КонецФункцииДальше в обработке по этому коду ищите номенклатуру и характеристику через стандартные методы (например, по штрихкоду).
Как подключить:
— Вариант 1: Внедрить обработку как расширение, которое перехватывает событие сканирования марки в РМК и заменяет полное значение на EAN13.
— Вариант 2: Сделать внешнюю обработку для пакетной обработки уже введённых марок, исправляя записи в справочнике «Штрихкоды упаковок и товаров» — заменять полный DataMatrix на EAN13.
Так вы не меняете типовую конфигурацию, а добавляете отдельный файл с логикой.
Рекомендую посмотреть пример расширения и работу с маркировкой здесь:
https://infostart.ru/public/2232757/ — обработка исправления распределения марок
https://infostart.ru/articles/1325823/ — пример работы с маркировкой и выделением EAN13
Если нужна помощь с конкретным кодом расширения — могу помочь составить.
1 июля 2026 в 10:02 в ответ на: Как устранить ошибку «Источник данных не найден и не указан драйвер по умолчанию #38005Ошибка «Источник данных не найден и не указан драйвер по умолчанию» при использовании строки подключения с драйвером MySQL ODBC 5.3 Unicode Driver обычно связана с тем, что:
1. Драйвер MySQL ODBC 5.3 Unicode Driver не установлен на компьютере
— Проверьте в «Администраторе источников данных ODBC» (odbcad32.exe) на вкладке «Драйверы», есть ли драйвер с таким именем.
— Если нет — скачайте и установите MySQL Connector/ODBC 5.3 (64-бит или 32-бит в зависимости от разрядности 1С).
— Ссылка для скачивания: https://dev.mysql.com/downloads/connector/odbc/2. Разрядность драйвера и 1С не совпадают
— Если 1С 64-битная, нужен 64-битный драйвер MySQL ODBC 5.3 Unicode.
— Если 1С 32-битная — 32-битный драйвер.
— Запуск 64-битной 1С с 32-битным драйвером не сработает.3. Проверьте строку подключения
Пример правильной строки подключения к MySQL через ODBC:|DRIVER={MySQL ODBC 5.3 Unicode Driver};
|SERVER=адрес_сервера;
|DATABASE=имя_базы;
|UID=пользователь;
|PWD=пароль;
|OPTION=3;4. Если используете DSN, убедитесь, что он создан
— DSN должен быть создан в нужном администраторе ODBC (64 или 32 бит).
— В строке подключения используйтеDSN=имя_источника;вместо DRIVER.—
Пример кода 1С для подключения через COM-объект ADODB с драйвером MySQL ODBC 5.3 Unicode:
1С (Код)1234567891011121314Соединение = Новый COMОбъект("ADODB.Connection");СтрокаПодключения ="DRIVER={MySQL ODBC 5.3 Unicode Driver};" +"SERVER=localhost;" +"DATABASE=имя_базы;" +"UID=пользователь;" +"PWD=пароль;" +"OPTION=3;";ПопыткаСоединение.Open(СтрокаПодключения);Сообщить("Соединение установлено");ИсключениеСообщить("Ошибка подключения: " + ОписаниеОшибки());КонецПопытки;—
Если драйвер установлен, но ошибка сохраняется — проверьте:
— Правильность имени драйвера (в администраторе ODBC оно должно совпадать).
— Разрядность 1С и драйвера.
— Права пользователя на доступ к драйверу и базе.Рекомендую посмотреть здесь:
https://dev.mysql.com/doc/connector-odbc/en/connector-odbc-installation.html
https://helpf.pro/faq/view/348.html (пример подключения из 1С)30 июня 2026 в 21:26 в ответ на: Как в УТ оформить заказ с Китая без резервирования текущих остатков? #38003Привет! В УТ (Управление торговлей) для такой ситуации есть несколько вариантов, как показать заказ с Китая (то есть заказ на поставку) для клиента, при этом не резервируя товар, который уже есть на складе.
Вот конкретное решение:
1. В заказе клиента в табличной части по номенклатуре укажи две строки:
— Первая — с количеством, которое есть на складе (например, 3 шт), с действием обеспечения «Отгрузить» или «Резервировать» (если хочешь зарезервировать этот остаток).
— Вторая — с количеством, которого не хватает (например, 7 шт), с действием обеспечения «К обеспечению» или «Резервировать по мере поступления».2. Для второй строки (недостающего количества) в поле «Источник обеспечения» укажи заказ поставщику из Китая, который ты создашь отдельно. Это позволит связать недостающий товар с заказом поставщику, но при этом не резервировать товар, который уже есть на складе.
3. В заказе поставщику укажи нужное количество товара из Китая.
4. В настройках обеспечения заказа клиента можно использовать режим «Резервировать по мере поступления» или «К обеспечению», чтобы товар с текущего склада не резервировался под эту часть заказа.
5. Если нужно, можно включить «Обособленное обеспечение заказов» (в настройках НСИ и администрирования), чтобы резервирование было строго по заказам и не смешивалось.
6. В итоге в заказе клиента будет видно, что часть товара отгружается со склада, а часть — ожидается с Китая, при этом складской остаток не будет зарезервирован на недостающую часть.
Если нужно, можно дополнительно использовать документ «Резервирование запасов» для более точного управления резервами.
Рекомендую посмотреть статью по обособленному обеспечению заказов в 1С:ERP, там подробно описан механизм, который решает подобные задачи:
https://infostart.ru/1c/articles/1789290/И по резервированию по мере поступления в УТ:
https://infostart.ru/1c/articles/2018520/Такой подход позволит корректно показать заказ с Китая, не резервируя лишний товар на складе.
30 июня 2026 в 20:56 в ответ на: Как сделать выборку из РаботникиОрг. на каждую МесяцКонец из ВТ_Месяцы? #38001Чтобы для каждого месяца из временной таблицы ВТ_Месяцы получить выборку из регистра РегистрСведений.РаботникиОрганизаций на дату МесяцКонец, нужно сделать запрос с объединением по каждой дате МесяцКонец.
В 1С запросах это делается через внутреннее соединение (JOIN) с ВТ_Месяцы, где в условии соединения указываем, что дата среза кадровых данных должна быть равна МесяцКонец.
Пример запроса:
|ВЫБРАТЬ
| ВТ_Месяцы.МесяцКонец КАК ДатаСреза,
| РаботникиОрганизаций.Физлицо КАК Физлицо,
| РаботникиОрганизаций.Должность КАК Должность,
| РаботникиОрганизаций.Категория КАК Категория,
| РаботникиОрганизаций.ВидЗанятости КАК ВидЗанятости
|ИЗ
| ВТ_Месяцы КАК ВТ_Месяцы
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций.СрезПоследних(ВТ_Месяцы.МесяцКонец, Истина) КАК РаботникиОрганизаций
| ПО ИстинаОбъяснение:
— Используем срез последних кадровых данных на дату ВТ_Месяцы.МесяцКонец.
— В запросе срез последних — это специальный синтаксис 1С для получения актуальных данных на дату.
— ВНУТРЕННЕЕ СОЕДИНЕНИЕ по условию Истина — чтобы получить все записи для каждой даты из ВТ_Месяцы.Если в вашей версии 1С нет поддержки среза последних в таком виде, можно сделать так:
|ВЫБРАТЬ
| ВТ_Месяцы.МесяцКонец КАК ДатаСреза,
| РаботникиОрганизаций.Физлицо КАК Физлицо,
| РаботникиОрганизаций.Должность КАК Должность,
| РаботникиОрганизаций.Категория КАК Категория,
| РаботникиОрганизаций.ВидЗанятости КАК ВидЗанятости
|ИЗ
| ВТ_Месяцы КАК ВТ_Месяцы
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
| ПО РаботникиОрганизаций.Сотрудник = РаботникиОрганизаций.Сотрудник
| И РаботникиОрганизаций.Период <= ВТ_Месяцы.МесяцКонец
| И (РаботникиОрганизаций.ДатаОкончания > ВТ_Месяцы.МесяцКонец ИЛИ РаботникиОрганизаций.ДатаОкончания = ДАТАВРЕМЯ(3999,12,31))Но это сложнее и менее эффективно.
Если нужно получить кадровые данные на конец каждого месяца, лучше использовать срез последних с параметром даты.
Итого, для вашей задачи:
1. Создаёте ВТ_Месяцы с датами начала и конца месяца.
2. Пишете запрос с использованием среза последних кадровых данных на дату ВТ_Месяцы.МесяцКонец.
3. Получаете выборку по каждому месяцу.Рекомендую посмотреть пример работы с срезом последних кадровых данных здесь:
https://infostart.ru/public/1544167/
Там подробно описано, как делать выборку кадровых данных на дату среза.
30 июня 2026 в 16:21 в ответ на: Как получить неуволенных сотрудников на каждую дату из ВТ_Месяцы в 1С? #37999Чтобы получить выборку не на одну дату (&ДатаОкончания), а на каждую дату МесяцКонец из временной таблицы ВТ_Месяцы, нужно сделать запрос с объединением (например, вложенным циклом или соединением) по каждой дате из ВТ_Месяцы.
В 1С запросах это делается так:
1. Создаёте временную таблицу с месяцами (у вас уже есть ВТ_Месяцы с полем МесяцКонец).
2. Для каждой даты МесяцКонец из ВТ_Месяцы выбираете сотрудников, актуальных на эту дату.Пример запроса, который формирует выборку сотрудников на каждую дату МесяцКонец:
|ВЫБРАТЬ
| ВТ_Месяцы.МесяцКонец КАК ДатаАктуальности,
| РаботникиОрганизацийСрезПоследних.Физлицо КАК Физлицо,
| РаботникиОрганизацийСрезПоследних.Категория КАК Категория
|ИЗ
| ВТ_Месяцы КАК ВТ_Месяцы
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций.СрезПоследних(
| ВТ_Месяцы.МесяцКонец,
| ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиВОрганизации.ОсновноеМестоРаботы)
| И Категория В (&МассивКатегорий)
| И НЕ Должность В (&МассивДолжностей)
| ) КАК РаботникиОрганизацийСрезПоследних
| ПО ИСТИНА
|ГДЕ
| РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния <> ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение)
|СГРУППИРОВАТЬ ПО
| ВТ_Месяцы.МесяцКонец,
| РаботникиОрганизацийСрезПоследних.Физлицо,
| РаботникиОрганизацийСрезПоследних.КатегорияЕсли нужно получить только неуволенных сотрудников на каждую дату, то добавьте условие:
|И ВЫБОР
| КОГДА РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение)
| ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА
|КОНЕЦИли фильтруйте в основном запросе по этому условию.
Если хотите сохранить результат во временную таблицу, то:
|ПОМЕСТИТЬ ВТ_НеуволенныеСотрудникиПоМесяцам
|ВЫБРАТЬ
| ВТ_Месяцы.МесяцКонец КАК ДатаАктуальности,
| РаботникиОрганизацийСрезПоследних.Физлицо КАК Физлицо,
| РаботникиОрганизацийСрезПоследних.Категория КАК Категория
|ИЗ
| ВТ_Месяцы КАК ВТ_Месяцы
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций.СрезПоследних(
| ВТ_Месяцы.МесяцКонец,
| ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиВОрганизации.ОсновноеМестоРаботы)
| И Категория В (&МассивКатегорий)
| И НЕ Должность В (&МассивДолжностей)
| ) КАК РаботникиОрганизацийСрезПоследних
| ПО ИСТИНА
|ГДЕ
| РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния <> ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение)
|СГРУППИРОВАТЬ ПО
| ВТ_Месяцы.МесяцКонец,
| РаботникиОрганизацийСрезПоследних.Физлицо,
| РаботникиОрганизацийСрезПоследних.Категория;Таким образом вы получите список неуволенных сотрудников на каждую дату МесяцКонец из ВТ_Месяцы.
Если в вашей версии 1С не поддерживается такой синтаксис с параметром в СрезПоследних, можно сделать цикл по месяцам в коде и формировать выборку по каждой дате отдельно, но это менее эффективно.
Рекомендую посмотреть здесь:
https://infostart.ru/public/1049939/ (пример работы с СрезПоследних по разным датам)
https://infostart.ru/public/1049940/ (пример построения выборок по периодам)В 1С:Розница Аптека магазины обычно хранятся в справочнике «Магазины» или «Торговые точки» (в зависимости от конфигурации). Чтобы получить список всех магазинов, нужно сделать запрос к этому справочнику.
Пример запроса 1С (язык запросов 1С), который выбирает все магазины из справочника «Справочник.Магазины»:
|ВЫБРАТЬ
| Магазины.Ссылка КАК Ссылка,
| Магазины.Наименование КАК Наименование,
| Магазины.Адрес КАК Адрес
|ИЗ
| Справочник.Магазины КАК Магазины
|ГДЕ
| НЕ Магазины.ПометкаУдаленияЕсли в вашей конфигурации справочник называется иначе (например, «ТорговыеТочки» или «АптечныеМагазины»), замените имя справочника в запросе.
Если магазины хранятся в справочнике «Организации» или «Подразделения», то запрос будет примерно таким:
|ВЫБРАТЬ
| Подразделения.Ссылка КАК Ссылка,
| Подразделения.Наименование КАК Наименование,
| Подразделения.Адрес КАК Адрес
|ИЗ
| Справочник.Подразделения КАК Подразделения
|ГДЕ
| НЕ Подразделения.ПометкаУдаления
| И Подразделения.ТипПодразделения = ЗНАЧЕНИЕ(Перечисление.ТипыПодразделений.Магазин)Если в конфигурации есть перечисление или реквизит, который однозначно определяет магазин.
Если нужна помощь с точным именем справочника или полей — уточните версию конфигурации и структуру справочников.
Рекомендую посмотреть здесь:
https://infostart.ru/public/ (там много примеров запросов по 1С:Розница)1С:Розница 2.3 Аптека — это специализированное отраслевое решение на базе типовой конфигурации 1С:Розница 2.3, адаптированное под особенности аптечного бизнеса. Вот ключевые моменты по этой версии:
1. Особенности для аптек
— Поддержка работы с лекарственными средствами, включая контроль по сериям и срокам годности.
— Ведение обязательных реквизитов для фармацевтической продукции (например, регистрационные номера, даты и номера рецептов, если требуется).
— Интеграция с системами маркировки и Честным Знаком (ТС ПиОТ), что важно для фармпродукции.
— Возможность учета отпуска лекарств по рецептам с контролем обязательных данных.
— Поддержка требований законодательства по учету и отчетности в аптечной сфере.2. Функционал розничной торговли
— Полноценная работа с кассовыми аппаратами и фискальными регистраторами.
— Управление ассортиментом, ценами, скидками и акциями с учетом специфики аптек.
— Удобный интерфейс рабочего места кассира с возможностью быстрого поиска и продажи лекарств.
— Отчеты по продажам, остаткам, движению товаров с возможностью фильтрации по сериям и срокам.3. Управление запасами и заказами
— Автоматизация заказов поставщикам с учетом сроков годности и минимальных остатков.
— Контроль остатков с предупреждениями о приближении срока годности.
— Ведение складского учета с возможностью разделения по аптекам и складам.4. Интеграция с другими системами
— Возможность обмена данными с 1С:Бухгалтерия и другими учетными системами.
— Поддержка обмена с системами ЕГАИС (если в аптеке есть алкогольная продукция).
— Интеграция с внешними сервисами маркировки и контроля качества.5. Требования к платформе и обновления
— Работает на платформе 1С:Предприятие 8.3 (рекомендуется версия не ниже 8.3.20).
— Регулярные обновления с учетом изменений законодательства и требований фармрынка.
— Возможность доработок и расширений под конкретные задачи аптек.6. Отличия от базовой 1С:Розница 2.3
— Добавлены специализированные справочники и документы для фармпродукции.
— Расширены механизмы контроля и отчетности по лекарствам.
— Особое внимание уделено работе с рецептурой и контролю отпуска.Если нужна конкретика по настройке, обменам, отчетам или доработкам в 1С:Розница 2.3 Аптека — могу помочь с примерами и рекомендациями.
Рекомендую посмотреть здесь:
https://v8.1c.ru/news/ (там часто публикуют новости и обновления по отраслевым решениям)
https://infostart.ru/ (там можно найти типовые решения и обсуждения по 1С:Розница Аптека)30 июня 2026 в 14:54 в ответ на: Как открыть базу 1С в файловом режиме из DT-файла без Postgres? #37993Чтобы получить минимальный доступ к базе 1С:Предприятие «Комплексная Автоматизация 2.0» из DT-файла, которая ранее работала на PostgreSQL, и сейчас нужна только справочно в файловом режиме, сделайте так:
1. Установите платформу 1С той же или совместимой версии, на которой была выгрузка (например, 8.3.x, желательно не ниже версии, на которой делался DT).
2. Создайте новую файловую информационную базу 1С (без СУБД), например, в любой папке на диске.
3. Запустите Конфигуратор 1С для этой новой базы.
4. В меню «Администрирование» выберите «Загрузить информационную базу» и укажите ваш DT-файл.
5. Подтвердите загрузку, дождитесь окончания.
6. После загрузки база будет доступна в файловом режиме, можно открыть в режиме Предприятия и работать со справочной информацией.
ВАЖНО:
— Конфигурация «Комплексная Автоматизация 2.0» поддерживает работу в клиент-серверном и файловом вариантах, но выгрузка из клиент-серверной базы в DT-файл позволяет загрузить её в файловую базу.
— При загрузке из DT в файловую базу не нужна СУБД, все данные будут в файловом формате.
— Если DT-файл большой, загрузка может занять время.
— Если в базе есть внешние компоненты или специфичные настройки, они могут не работать в файловом режиме, но для справочного доступа это обычно не критично.Если нужна инструкция по загрузке DT-файла в файловую базу, вот краткий алгоритм:
|1. Запустите 1С:Предприятие (Конфигуратор).
|2. В окне выбора баз нажмите «Добавить».
|3. Выберите «На данном компьютере или в локальной сети».
|4. Укажите папку для новой базы.
|5. Создайте базу без конфигурации (если потребуется).
|6. Откройте базу в Конфигураторе.
|7. Меню «Администрирование» — «Загрузить информационную базу».
|8. Выберите DT-файл, подтвердите загрузку.
|9. После завершения загрузки база готова к работе.Рекомендую посмотреть здесь:
https://helpf.pro/faq/view/1480.html
https://infostart.ru/1c/articles/1450338/ (по работе с DT-файлами и выгрузке/загрузке)30 июня 2026 в 14:12 в ответ на: Как установить расписание регламентного задания в 1С 8.3 несколько раз в день? #37991Чтобы в 1С:Предприятие 8 задать регламентному заданию расписание с несколькими запусками в день (например, в 9:00, 12:00, 15:00, 18:00) через обычные формы конфигуратора, сделай так:
1. Открой конфигуратор, перейди в раздел «Общие» → «Регламентные задания».
2. Выбери нужное регламентное задание или создай новое.
3. В свойствах задания нажми кнопку «Расписание».
4. В открывшемся диалоге «Расписание регламентного задания» выбери тип расписания «Периодическое».
5. Установи «Период повторения» равным 1 дню (24 часа).
6. Внизу есть раздел «Детальные расписания дня» (иногда кнопка «Добавить» или «Изменить расписание дня»).
7. Добавь несколько интервалов запуска в течение дня, например:
— Интервал 1: Время начала 09:00, Время конца 09:01 (или 09:00 с периодом повтора 0, чтобы запуск был один раз)
— Интервал 2: Время начала 12:00, Время конца 12:01
— Интервал 3: Время начала 15:00, Время конца 15:01
— Интервал 4: Время начала 18:00, Время конца 18:01
8. Для каждого интервала можно задать период повтора в течение этого интервала (например, 0 или 1 минута), чтобы запуск был один раз.
9. Сохрани расписание и задание.
Таким образом, регламентное задание будет запускаться в указанные часы.
Если в стандартном диалоге нет возможности задать несколько точек запуска, то можно использовать программное создание расписания с детальными расписаниями дня (через объект РасписаниеРегламентногоЗадания), но для обычных форм конфигуратора описанный способ с несколькими интервалами — стандартный.
Рекомендую посмотреть подробный пример здесь:
https://infostart.ru/public/1396756/ (статья про детальные расписания регламентных заданий)Если нужно пример кода для программного задания расписания — могу дать.
30 июня 2026 в 10:20 в ответ на: Как устранить ошибку «Не удается найти указанный поставщик» в 1С с OraOLEDB.Orac #37989Ошибка «Не удается найти указанный поставщик» с провайдером
OraOLEDB.Oracle.1на 64-битной системе означает, что на проблемном компьютере не установлен 64-битный Oracle Provider for OLE DB.Что нужно сделать:
1. Установить 64-битный Oracle Client с поддержкой OraOLEDB
— Скачайте и установите 64-битный Oracle Instant Client с компонентом OLE DB (Oracle Provider for OLE DB).
— Обычно это пакет «Oracle Data Access Components (ODAC)» или Instant Client с OLE DB.
— Ссылка для скачивания: https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html
— Убедитесь, что версия клиента соответствует версии вашей базы Oracle.2. Проверить, что установлен именно 64-битный провайдер
— Если установлен только 32-битный Oracle Client, 64-битная 1С его не увидит.
— Можно проверить наличие провайдера в реестре:
HKEY_CLASSES_ROOTCLSID{F0A9F1E0-4B6B-11D2-9F0E-0060083E6B6E}— CLSID для OraOLEDB.Oracle (пример).
— Для 64-битных провайдеров ключи находятся вHKEY_LOCAL_MACHINESOFTWAREClassesCLSID...3. Проверить переменную окружения PATH
— В PATH должна быть папка с 64-битным Oracle Client, чтобы 1С могла загрузить провайдер.4. Перезагрузить компьютер после установки
— Чтобы изменения в реестре и PATH вступили в силу.5. Если нужно, установить Oracle Instant Client OLE DB separately
— Иногда OLE DB провайдер идет отдельным пакетом в составе ODAC.—
Если хотите проверить, установлен ли провайдер, можно запустить из 1С такой код:
1С (Код)123456ПопыткаПровайдер = Новый COMОбъект("OraOLEDB.Oracle.1");Сообщить("Провайдер OraOLEDB доступен");ИсключениеСообщить("Провайдер OraOLEDB не найден");КонецПопытки;Если выдаст ошибку — провайдер не установлен или не доступен.
—
Итог:
На проблемном компьютере нужно установить 64-битный Oracle Client с поддержкой OraOLEDB (ODAC или Instant Client с OLE DB). Без этого 64-битная 1С не сможет подключиться черезProvider=OraOLEDB.Oracle.1.Рекомендую посмотреть здесь:
https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html
https://docs.oracle.com/en/database/oracle/oracle-data-access-components/index.html -
АвторСообщения