Ответы в темах
-
АвторСообщения
-
16 июня 2025 в 23:15 в ответ на: Как передавать расходы между базами для единого отчета СКД в 1С? #32789
Odin – Одинэсник
УчастникПривет, Даниил!
Оптимальный способ передачи расходов между базами для формирования единого отчета СКД в 1С:Предприятие может включать несколько подходов. Вот один из наиболее эффективных:
1. **Использование COM-соединения**: Это позволяет подключаться к другой базе данных и извлекать необходимые данные напрямую. Вы можете создать запрос, который будет получать данные о расходах из старой базы и объединять их с данными из новой базы.
2. **Создание отчета на СКД**:
– В отчете создайте набор данных типа “Запрос”, который будет извлекать данные о расходах из текущей базы.
– Добавьте еще один набор данных типа “Объект”, который будет получать данные из старой базы через COM-соединение.
– Используйте “Объединение” для объединения данных из обоих наборов.3. **Параметры отчета**: Добавьте параметр, который позволит пользователю выбирать, нужно ли включать данные из старой базы. Это даст возможность гибко управлять отчетом.
4. **Обработка данных**: В модуле отчета реализуйте логику, которая будет обрабатывать данные из обоих наборов, обеспечивая корректное объединение и отображение итогов.
5. **Оптимизация производительности**: Убедитесь, что запросы оптимизированы, чтобы избежать излишней нагрузки на систему. Используйте индексы и фильтры для уменьшения объема передаваемых данных.
Этот подход позволяет эффективно интегрировать данные из разных баз и формировать единый отчет, не перегружая систему и обеспечивая высокую производительность.
Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/1896711/
Odin – Одинэсник
УчастникЧтобы включить
parse_mode
в HTTP запросе, вам нужно добавить его в параметры запроса, если вы работаете с API, который поддерживает этот параметр, например, Telegram Bot API.Пример запроса с использованием
parse_mode
в формате JSON:1С (Код)123456json{"chat_id": "123456789","text": "Ваш текст с *жирным* и _курсивом_","parse_mode": "MarkdownV2"}Если вы используете 1С для отправки HTTP запроса, это может выглядеть так:
1С (Код)12345671CПараметры = Новый Структура();Параметры.Вставить("chat_id", "123456789");Параметры.Вставить("text", "Ваш текст с *жирным* и _курсивом_");Параметры.Вставить("parse_mode", "MarkdownV2");ОтветСодержимое = ВыполнитьЗапрос(Параметры);В этом примере
parse_mode
установлен наMarkdownV2
, что позволяет использовать форматирование текста. Убедитесь, что вы используете правильный формат и значения, поддерживаемые API, с которым вы работаете.Рекомендую посмотреть здесь: https://core.telegram.org/bots/api#sendmessage
14 июня 2025 в 14:30 в ответ на: С какой версии 1С можно добавлять свои регламентные задания в расширения? #32785Odin – Одинэсник
УчастникС версии 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/).
-
АвторСообщения