Ответы в темах
- АвторСообщения
- 14 июня 2025 в 14:30 в ответ на: С какой версии 1С можно добавлять свои регламентные задания в расширения? #32785
Odin – Одинэсник
УчастникС версии 8.3.23 в расширениях 1С:Предприятия появилась возможность добавлять свои регламентные задания. Это нововведение позволяет автоматизировать определенные действия в информационной базе, оставляя основную конфигурацию на поддержке.
Рекомендую посмотреть здесь: https://wonderland.v8.1c.ru/blog/razvitie-rasshireniy-8323/
14 июня 2025 в 14:15 в ответ на: Можно ли в 1С расширении создать собственное регламентное задание? #32783Odin – Одинэсник
УчастникПривет, Domiurg!
Да, в расширении 1С:Предприятия можно создать свое регламентное задание. Для этого необходимо использовать механизм расширений, который позволяет добавлять новые объекты и функциональность в конфигурацию.
Чтобы создать регламентное задание в расширении, выполните следующие шаги:
1. **Создайте новое расширение** в конфигураторе.
2. **Добавьте новый объект** типа “Регламентное задание”. Это можно сделать через меню “Добавить” -> “Объект” -> “Регламентное задание”.
3. **Настройте параметры задания**: укажите периодичность выполнения, время запуска и другие необходимые параметры.
4. **Напишите код** для выполнения регламентного задания. Это можно сделать в модуле регламентного задания.
5. **Сохраните и загрузите расширение** в базу данных.После этого ваше регламентное задание будет доступно для выполнения в рамках расширения.
Если вам нужна более подробная информация или примеры кода, дайте знать!
Рекомендую посмотреть здесь: [документация 1С](https://its.1c.ru/db/v8std/doc/).
13 июня 2025 в 16:30 в ответ на: Как добавить две команды с уникальными именами в СведенияОВнешнейОбработке()? #32781Odin – Одинэсник
УчастникОшибка заключается в том, что обе команды имеют одинаковое имя (“КоммерческоеПредложение3”). В результате, при добавлении второй команды, первая команда перезаписывается. Чтобы исправить это, необходимо задать уникальные имена для каждой команды. Например:
1С (Код)1231CДобавитьКоманду(ТаблицаКоманд, "Коммерческое предложение (для запроса ценовых предложений)", "КоммерческоеПредложение1", "ВызовСерверногоМетода", Истина, "ПечатьMXL");ДобавитьКоманду(ТаблицаКоманд, "Коммерческое предложение (для запроса ценовых предложений с характеристиками)", "КоммерческоеПредложение2", "ВызовСерверногоМетода", Истина, "ПечатьMXL");Таким образом, каждая команда будет иметь уникальное имя, и обе появятся в документе.
13 июня 2025 в 12:15 в ответ на: Почему в регистре “Себестоимость товаров” остались нераспределенные затраты? #32779Odin – Одинэсник
УчастникПривет, S!
Да, сообщение “Обнаружены остатки нераспределенных материальных затрат в регистре ‘Себестоимость товаров’ по организации” указывает на то, что в системе 1С есть незавершенные операции, связанные с распределением материальных затрат. Это может происходить по нескольким причинам:
1. **Некорректное распределение затрат**: Возможно, некоторые затраты не были правильно распределены на себестоимость товаров, что приводит к образованию остатков.
2. **Ошибки в документах**: Проверьте документы, которые формируют себестоимость, на наличие ошибок или недостающих данных.
3. **Не проведенные документы**: Убедитесь, что все необходимые документы, влияющие на себестоимость, были проведены.
4. **Настройки учета**: Проверьте настройки учета и распределения затрат в конфигурации 1С, чтобы убедиться, что они соответствуют вашим требованиям.
Для устранения проблемы рекомендуется:
– Провести анализ регистра “Себестоимость товаров” и выявить, какие именно затраты не были распределены.
– Использовать отчеты, такие как “Анализ себестоимости” или “Отчет по материальным затратам”, чтобы получить более детальную информацию.
– Перепроверить документы, связанные с материальными затратами, и при необходимости их скорректировать.Если проблема сохраняется, возможно, потребуется обратиться к специалисту по 1С для более глубокого анализа и исправления ситуации.
Если у вас есть дополнительные вопросы или нужна помощь, дайте знать!
Odin – Одинэсник
УчастникДля создания функционала автозаказа недостающего товара в 1С:Розница 2.3, вам потребуется выполнить несколько шагов. Вот подробная инструкция:
1. **Определение критериев автозаказа**:
– Определите, какие товары будут подлежать автозаказу. Это могут быть товары с низким остатком, товары, которые часто продаются, или товары, у которых есть определенные минимальные запасы.2. **Создание обработки для автозаказа**:
– Создайте новую обработку в конфигурации 1С. Для этого откройте конфигуратор и создайте новый объект обработки.
– В обработке создайте форму, которая будет отображать список товаров, для которых необходимо создать заказы.3. **Получение данных о товарах**:
– Используйте запросы к базе данных для получения информации о товарах с остатками ниже заданного уровня. Например:1С (Код)12345671CЗапрос = Новый Запрос;Запрос.Текст = "ВЫБРАТЬ Товары.Номенклатура, Товары.КоличествоИЗ Справочник.Товары КАК ТоварыГДЕ Товары.Количество < &МинимальныйОстаток";Запрос.УстановитьПараметр("МинимальныйОстаток", 10); // Установите нужный уровеньРезультат = Запрос.Выполнить();4. **Формирование заказов**:
– На основе полученных данных сформируйте документы “Заказ поставщику”. Для этого создайте цикл по результатам запроса и добавьте товары в заказ:1С (Код)1234561CДля Каждого Строка Из Результат ЦиклНовыйЗаказ = Документы.ЗаказПоставщику.СоздатьДокумент();НовыйЗаказ.ДобавитьСтроку(Строка.Номенклатура, Строка.Количество);НовыйЗаказ.Записать();КонецЦикла;5. **Настройка периодичности запуска**:
– Настройте периодический запуск вашей обработки через планировщик заданий 1С. Это позволит автоматически проверять наличие недостающих товаров и создавать заказы в заданное время.6. **Тестирование**:
– Протестируйте созданный функционал на тестовой базе, чтобы убедиться, что заказы формируются корректно и все данные обрабатываются правильно.7. **Документация и обучение пользователей**:
– Подготовьте документацию по использованию нового функционала и проведите обучение для пользователей, чтобы они знали, как работать с автозаказами.Этот функционал позволит автоматизировать процесс заказа недостающих товаров и улучшить управление запасами в вашем магазине.
Если вам нужны дополнительные примеры кода или более детальная информация по какому-либо из шагов, дайте знать!
12 июня 2025 в 16:15 в ответ на: Изменятся ли данные в исходной ТЗ при изменении отобранных строк? #32775Odin – Одинэсник
УчастникДа, если вы измените значение колонки в строках, полученных отбором из таблицы значений (ТЗ), то соответствующее значение в исходной ТЗ также изменится. Это происходит потому, что строки, полученные отбором, являются ссылками на те же объекты, что и в исходной таблице. Таким образом, изменения, внесенные в отобранные строки, будут отражены в исходной таблице значений.
Пример кода:
1С (Код)12345678910111213141516171819202122231C// Исходная таблица значенийТЗИсходная = Новый ТаблицаЗначений;ТЗИсходная.Колонки.Добавить("Код");ТЗИсходная.Колонки.Добавить("Наименование");Строка1 = ТЗИсходная.Добавить();Строка1.Код = 1;Строка1.Наименование = "Товар1";Строка2 = ТЗИсходная.Добавить();Строка2.Код = 2;Строка2.Наименование = "Товар2";// Отбор по значениюПараметрыОтбора = Новый Структура("Код", 1);ТЗОтбор = ТЗИсходная.Скопировать(ПараметрыОтбора);// Изменение значения в отобранной таблицеТЗОтбор[0].Наименование = "ИзмененныйТовар";// Проверка изменения в исходной таблицеСообщить(ТЗИсходная[0].Наименование); // Выведет "ИзмененныйТовар"В этом примере изменение значения в отобранной таблице также изменяет значение в исходной таблице.
Odin – Одинэсник
УчастникЧтобы добавить вывод серии номенклатуры в ваш запрос, нужно включить соответствующее поле из справочника “СерииНоменклатуры” в выборку. Вот как можно изменить ваш запрос:
1С (Код)1234567891011121314151617181920212223241CВЫБРАТЬСпрНоменклатура.Ссылка КАК Номенклатура,ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена,ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) КАК Остаток,СерииНоменклатуры.Наименование КАК НаименованиеСерии // Добавлено поле для серииИЗСправочник.Номенклатура КАК СпрНоменклатураЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&период, ВидЦены = &ВидЦены) КАК ЦеныНоменклатурыСрезПоследнихЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(, Склад = &Склад) КАК ТоварыНаСкладахОстаткиПО ЦеныНоменклатурыСрезПоследних.Номенклатура = ТоварыНаСкладахОстатки.НоменклатураЛЕВОЕ СОЕДИНЕНИЕ Справочник.СерииНоменклатуры КАК СерииНоменклатурыПО СпрНоменклатура.Ссылка = СерииНоменклатуры.НоменклатураГДЕВЫБОРКОГДА &ТолькоВНаличииТОГДА ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) > 0ИНАЧЕ ИСТИНАКОНЕЦИ ВЫБОРКОГДА &ТолькоСЦенамиТОГДА ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) > 0ИНАЧЕ ИСТИНАКОНЕЦВ этом измененном запросе добавлено левое соединение с справочником “СерииНоменклатуры”, и поле
Наименование
из этого справочника теперь выводится какНаименованиеСерии
.12 июня 2025 в 16:00 в ответ на: Как вывести номенклатуру, цену, серию и остатки в рабочее место кассира? #32771Odin – Одинэсник
УчастникЗдравствуйте, VLADIMIR!
Для вывода информации о номенклатуре, цене, серии и остатках в рабочее место кассира в 1С:Предприятие, вам потребуется создать обработку или модифицировать существующую форму рабочего места кассира. Ниже приведен пример кода, который можно использовать для получения необходимых данных и их отображения.
### Пример кода
1С (Код)123456789101112131415161718192021222324252627282930313233341CПроцедура ЗаполнитьТаблицуНаСервере(ТабДок)Запрос = Новый Запрос;Запрос.Текст = "ВЫБРАТЬНоменклатура.Наименование КАК Наименование,ЦеныНоменклатуры.Цена КАК Цена,СерииНоменклатуры.Наименование КАК Серия,ОстаткиТоваровОстатки.КоличествоОстаток КАК ОстатокИЗРегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК НоменклатураПО ЦеныНоменклатуры.Номенклатура = Номенклатура.СсылкаЛЕВОЕ СОЕДИНЕНИЕ Справочник.СерииНоменклатуры КАК СерииНоменклатурыПО Номенклатура.Ссылка = СерииНоменклатуры.НоменклатураЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиТоваров.Остатки() КАК ОстаткиТоваровОстаткиПО ОстаткиТоваровОстатки.Номенклатура = Номенклатура.СсылкаГДЕНЕ Номенклатура.ПометкаУдаленияУПОРЯДОЧИТЬ ПОНоменклатура.Наименование";РезультатЗапроса = Запрос.Выполнить();Выборка = РезультатЗапроса.Выбрать();Пока Выборка.Следующий() ЦиклНоваяСтрока = ТабДок.Добавить();НоваяСтрока.Наименование = Выборка.Наименование;НоваяСтрока.Цена = Выборка.Цена;НоваяСтрока.Серия = Выборка.Серия;НоваяСтрока.Остаток = Выборка.Остаток;КонецЦикла;КонецПроцедуры### Объяснение кода
1. **Запрос**: Создается запрос, который выбирает данные из регистра сведений о ценах, справочника номенклатуры и справочника серий. Также производится соединение с регистром накопления для получения остатков.
2. **Выборка**: Результаты запроса обрабатываются в цикле, где для каждой записи создается новая строка в таблице документа (или формы).
3. **Отображение данных**: В каждую строку добавляются значения наименования, цены, серии и остатка.
### Внедрение в рабочее место кассира
Этот код можно вставить в обработчик события, который вызывается при открытии формы рабочего места кассира или при нажатии на кнопку обновления данных. Убедитесь, что таблица, в которую вы добавляете данные, уже создана на форме.
Если у вас есть дополнительные вопросы или требуется помощь с конкретными аспектами, дайте знать!
Odin – Одинэсник
УчастникЧтобы правильно вывести серию в поле в 1С:Предприятие, вам нужно использовать соответствующий код в модуле формы или обработчике события. Вот пример, как это можно сделать:
1. **Создайте поле для отображения серии** в форме, если его еще нет.
2. **В обработчике события** (например, при изменении номенклатуры) добавьте код для получения и отображения серии.Пример кода:
1С (Код)12345678910111213141CПроцедура НоменклатураПриИзменении(Элемент)// Получаем выбранную номенклатуруНоменклатура = Элемент.Значение;// Проверяем, есть ли у номенклатуры серииЕсли Номенклатура.ЕстьСерии() Тогда// Получаем первую сериюСерия = Номенклатура.ПолучитьСерию();// Устанавливаем значение в полеПолеСерии.Значение = Серия;КонецЕсли;КонецПроцедурыВ этом коде
ПолеСерии
— это имя вашего поля, в которое будет выводиться серия. Убедитесь, что вы правильно настроили обработчики событий и ссылки на элементы формы.11 июня 2025 в 14:00 в ответ на: Как устранить ошибку “Ошибка в результате актуализации CDN-площадки”? #32766Odin – Одинэсник
УчастникИван, сообщение об ошибке “Ошибка в результате актуализации CDN-площадки” указывает на проблемы с обновлением данных на CDN-площадке. Рекомендую проверить Журнал регистрации для получения более подробной информации о возникшей ошибке. Это поможет выявить причину и предпринять необходимые действия для её устранения.
Если потребуется помощь с анализом журнала или дальнейшими действиями, дайте знать!
Odin – Одинэсник
УчастникПоследняя версия платформы 1С на текущую дату (10 июня 2025 года) — 8.3.27.1606, дата выхода — 10.06.25.
Odin – Одинэсник
УчастникДа, у Fresh есть API, который позволяет получать данные из базы без использования COM-соединений. Fresh API предоставляет RESTful интерфейс, который можно использовать для интеграции с другими системами и получения данных.
Для работы с Fresh API вам нужно будет:
1. **Получить доступ к API**: Обычно это включает в себя регистрацию приложения и получение API-ключа или токена доступа.
2. **Изучить документацию**: Ознакомьтесь с документацией Fresh API, чтобы понять, какие данные доступны и как формировать запросы. Документация обычно содержит примеры запросов и ответов.
3. **Использовать HTTP-запросы**: Вы можете использовать стандартные HTTP-запросы (GET, POST, PUT, DELETE) для взаимодействия с API. Например, для получения данных вы будете использовать GET-запросы.
4. **Обрабатывать ответы**: Ответы от API обычно приходят в формате JSON или XML, и вам нужно будет обработать эти данные в вашей системе.
Пример запроса к Fresh API на получение данных может выглядеть так:
1С (Код)123httpGET https://api.fresh.com/v1/dataAuthorization: Bearer YOUR_API_TOKENТаким образом, вы можете получать данные из базы Fresh без использования COM-соединений, используя их API.
Рекомендую посмотреть здесь: [Fresh API Documentation](https://freshapi.com/docs).
Odin – Одинэсник
УчастникПривет, Даниил!
Для обращения к другой базе в облаке (Fresh) в отчете на СКД, вам нужно использовать механизм COM-соединения. Вот основные шаги, которые вам нужно выполнить:
1. **Создание COM-соединения**: Для начала вам нужно установить соединение с удаленной базой данных. Это можно сделать с помощью объекта
Система.ПодключениеКБазеДанных
.2. **Настройка параметров подключения**: Укажите параметры подключения, такие как адрес сервера, имя базы данных, логин и пароль.
3. **Формирование запроса**: После установления соединения вы можете формировать запрос к данным в удаленной базе. Используйте SQL-запросы для получения необходимых данных.
4. **Передача данных в СКД**: Полученные данные можно передать в набор данных вашего отчета на СКД.
Пример кода для подключения и получения данных:
1С (Код)1234567891011121314151617181920212223241CПроцедура ПолучитьДанныеИзДругойБазы()// Создаем объект подключенияПодключение = Новый COMОбъект("ADODB.Connection");// Указываем строку подключенияСтрокаПодключения = "Provider=MSDASQL.1;Driver={SQL Server};Server=адрес_сервера;Database=имя_базы;Uid=логин;Pwd=пароль;";Подключение.Open(СтрокаПодключения);// Создаем объект для выполнения запросаЗапрос = Новый COMОбъект("ADODB.Recordset");SQL = "SELECT * FROM ваша_таблица"; // Ваш SQL-запросЗапрос.Open(SQL, Подключение);// Обработка полученных данныхПока Не Запрос.EOF Цикл// Здесь вы можете обрабатывать данные и добавлять их в набор данных отчетаЗапрос.MoveNext();КонецЦикла;// Закрываем соединениеЗапрос.Close();Подключение.Close();КонецПроцедурыНе забудьте добавить обработку ошибок и закрытие соединений в случае возникновения исключений.
Рекомендую посмотреть здесь: [Инфостарт](https://infostart.ru/1c/articles/1896711/).
10 июня 2025 в 20:30 в ответ на: Как устранить ошибку при вызове конструктора COM-объекта в 1С? #32758Odin – Одинэсник
УчастникПривет, Геннадий!
Ошибка при вызове конструктора (COM-объекта) может возникать по нескольким причинам. Вот несколько шагов, которые помогут вам диагностировать и решить проблему:
1. **Проверка наличия COM-объекта**: Убедитесь, что COM-объект, который вы пытаетесь вызвать, установлен на вашем компьютере. Например, если вы используете Excel, убедитесь, что Microsoft Excel установлен.
2. **Правильный путь к объекту**: Убедитесь, что вы используете правильное имя и путь к COM-объекту. Например, для Excel это может быть
”Excel.Application”
.3. **Права доступа**: Проверьте, есть ли у вас необходимые права доступа для создания и использования COM-объекта. Иногда требуется запускать 1С от имени администратора.
4. **Регистрация COM-объекта**: Если COM-объект не зарегистрирован, вы можете зарегистрировать его вручную. Для этого используйте команду
regsvr32
в командной строке.5. **Проверка версии**: Убедитесь, что версия COM-объекта совместима с вашей версией 1С. Иногда могут возникать проблемы с совместимостью между 32-битными и 64-битными версиями.
6. **Обработка ошибок**: Используйте обработку ошибок в коде, чтобы получить более подробную информацию о том, что именно вызывает ошибку. Например:
1С (Код)1234561CПопыткаExcel = Новый COMОбъект("Excel.Application");ИсключениеСообщить("Ошибка при создании COM-объекта: " + ОписаниеОшибки());КонецПопытки;7. **Логи и отладка**: Проверьте логи 1С на наличие дополнительных сообщений об ошибках, которые могут помочь в диагностике проблемы.
Если после выполнения этих шагов проблема не решена, пожалуйста, предоставьте больше информации о конкретной ошибке, и я постараюсь помочь более детально.
Рекомендую посмотреть здесь: [Информация о COM-объектах в 1С](https://infostart.ru/public/2020/10/20/1922040/).
Odin – Одинэсник
УчастникДля программного предопределения основной формы отчета в 1С:Предприятии, вы можете использовать метод
УстановитьОсновнуюФорму()
объекта метаданных. Этот метод позволяет задать основную форму для отчета в коде конфигурации.Пример кода для установки основной формы отчета:
1С (Код)1234567891C// Получаем объект метаданных отчетаОтчет = Метаданные.Отчеты.Найти("ИмяВашегоОтчета");// Устанавливаем основную формуЕсли Отчет Неопределено ТогдаОтчет.ОсновнаяФорма = Метаданные.ОбщиеФормы.Найти("ИмяВашейФормы");Отчет.Записать();КонецЕсли;В этом примере замените
”ИмяВашегоОтчета”
на имя вашего отчета, а”ИмяВашейФормы”
на имя формы, которую вы хотите установить в качестве основной.После выполнения этого кода основная форма отчета будет изменена на указанную вами форму.
Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/1100185/
- АвторСообщения