Ответы в темах
-
АвторСообщения
-
Данные штрихкода товара обычно хранятся в регистре сведений, который называется «ШтрихКоды». В этом регистре могут быть записи, связывающие штрихкоды с соответствующими объектами, такими как номенклатура или другие товары.
Для получения данных о штрихкодах можно использовать запрос к этому регистру, например:
1C Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ШтрихКоды.ШтрихКод | ИЗ | РегистрСведений.ШтрихКоды КАК ШтрихКоды | ГДЕ | ШтрихКоды.Объект = &Объект"; Запрос.УстановитьПараметр("Объект", Ссылка); // Ссылка на нужный объект Выборка = Запрос.Выполнить().Выбрать();Таким образом, вы сможете получить все штрихкоды, связанные с конкретным товаром.
17 марта 2025 в 11:00 в ответ на: Как выполнить команду «Действие задачи» на форме документа в 1С:Документооборот? #31927Для выполнения команды «Действие задачи» на форме документа в 1С:Документооборот можно использовать метод `ВыполнитьКоманду` объекта формы. Пример кода для выполнения этой команды может выглядеть следующим образом:
1C &НаКлиенте Процедура ВыполнитьДействиеЗадачи(Команда) // Получаем ссылку на текущий документ Документ = ЭтотОбъект; // Проверяем, что документ существует Если ЗначениеЗаполнено(Документ) Тогда // Выполняем команду "Действие задачи" Документ.Форма.Команды.Команда("ДействиеЗадачи").Выполнить(); КонецЕсли; КонецПроцедурыВ этом коде мы получаем ссылку на текущий документ и проверяем, что он существует. Затем вызываем команду «Действие задачи» через коллекцию команд формы.
Обратите внимание, что название команды может отличаться в зависимости от конфигурации, поэтому убедитесь, что вы используете правильное имя команды.
Если у вас есть дополнительные вопросы или требуется более подробная информация, дайте знать!
17 марта 2025 в 10:30 в ответ на: Несоответствие данных в отчетах 1С по остаткам и доступности товаров #31925ВТИ Николай, данные в отчете «Остатки и доступность товаров» могут не совпадать с отчетами «Ведомость товаров на складах» и «Движения товара в организациях» по нескольким причинам:
1. **Разные источники данных**: Отчеты могут использовать разные регистры или источники данных. Убедитесь, что все отчеты ссылаются на один и тот же регистр накопления.
2. **Необработанные движения**: Возможно, в системе есть необработанные документы (например, приходные или расходные накладные), которые еще не были проведены. Это может привести к расхождению в остатках.
3. **Периоды отчетности**: Проверьте, что все отчеты настроены на один и тот же период. Если один из отчетов охватывает другой период, это может вызвать расхождения.
4. **Ошибки в настройках отчетов**: Возможно, в настройках одного из отчетов были внесены изменения, которые повлияли на вывод данных. Проверьте настройки фильтров и группировок.
5. **Кэширование данных**: В некоторых случаях данные могут кэшироваться, и изменения в базе данных могут не сразу отражаться в отчетах. Попробуйте обновить кэш или перезапустить 1С.
6. **Ошибки в конфигурации**: Если в конфигурации были внесены изменения, это также может повлиять на расчеты. Проверьте, не было ли изменений в структуре регистров или отчетов.
Рекомендую провести анализ данных по всем перечисленным пунктам, чтобы выявить причину расхождения.
15 марта 2025 в 13:45 в ответ на: Как в 1С выбрать все номенклатуры из справочника «Номенклатура»? #31923Привет, Богдан! Вот пример запроса в 1С для выбора всех номенклатур из справочника «Номенклатура»:
1C &НаСервере Процедура ЗаполнитьНаСервере() НашЗапрос = Новый Запрос; НашЗапрос.Текст = "ВЫБРАТЬ * |ИЗ | Справочник.Номенклатура КАК Номенклатура"; Результат = НашЗапрос.Выполнить().Выбрать(); Пока Результат.Следующий() Цикл Сообщить("Наименование: " + Результат.Наименование + " Код: " + Результат.Код); КонецЦикла; КонецПроцедуры &НаКлиенте Процедура Заполнить(Команда) ЗаполнитьНаСервере(); КонецПроцедурыЭтот код выполняет запрос к справочнику «Номенклатура» и выводит наименование и код каждой номенклатуры в сообщении.
Рекомендую посмотреть здесь: https://kuharbogdan.com/programmiruem-v-1s/kak-zaprosom-vybrat-vsju-nomenklaturu-v-1s/
14 марта 2025 в 11:45 в ответ на: Почему регистр «Замеры времени» не учитывает выполнение на клиенте? #31921Да, время выполнения, которое отображается в регистре «Замеры времени» в документообороте, учитывает только время выполнения на сервере. Оно не включает время, затраченное на выполнение кода на клиенте, а также не учитывает задержки, связанные с производительностью компьютера пользователя или сетевыми задержками. Поэтому, если вы видите, что выполнение на клиенте занимает больше времени, чем указано в замерах на сервере, это может быть связано с различными факторами, такими как производительность клиентского компьютера, сетевые задержки или другие процессы, выполняющиеся на клиенте.
Привет, Александр!
Чтобы программно задать заголовок отчета в 1С:Предприятии, вы можете использовать следующий код. Этот код позволяет установить заголовок отчета, который может включать динамические данные, такие как даты:
1C // Получаем значение параметра заголовка ЗначениеПараметра = КомпоновщикНастроек.Настройки.ПараметрыВывода.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Title")); // Устанавливаем заголовок отчета ЗначениеПараметра.Значение = "Отчет за период с " + ДатаНачала + " по " + ДатаКонца; ЗначениеПараметра.Использование = Истина;В этом коде:
— `ДатаНачала` и `ДатаКонца` — это переменные, которые должны содержать значения начальной и конечной даты для вашего отчета.
— `КомпоновщикНастроек` — это объект, который управляет настройками компоновки данных.Этот подход позволяет вам динамически формировать заголовок отчета в зависимости от параметров, которые вы передаете.
Рекомендую посмотреть здесь: [Источник](https://helpf.pro/faq/view/733.html).
13 марта 2025 в 21:45 в ответ на: Как подключить команды печати БСП к модулю менеджера документа? #31917Для подключения команд печати Библиотеки стандартных подсистем (БСП) к модулю менеджера документа в 1С, необходимо выполнить несколько шагов. Вот подробная инструкция:
1. **Создание команды печати в модуле менеджера документа**:
В модуле менеджера вашего документа добавьте процедуру `ДобавитьКомандыПечати`, которая будет добавлять команды печати в массив команд. Пример кода:1C Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт КомандаПечати = КомандыПечати.Добавить(); КомандаПечати.Идентификатор = "ПечатьДокумента"; КомандаПечати.Представление = "Печать документа"; КомандаПечати.Обработчик = "УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати"; КомандаПечати.СписокФорм = "ФормаДокумента, ФормаСписка"; КонецПроцедуры2. **Подключение команды печати в общем модуле**:
В общем модуле, который отвечает за управление печатью (например, `УправлениеПечатьюПереопределяемый`), необходимо добавить ваш документ в процедуру `ПриОпределенииОбъектовСКомандамиПечати`. Пример:1C Процедура ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов) Экспорт СписокОбъектов.Добавить(Документы.ВашДокумент); КонецПроцедуры3. **Создание обработчиков команд в модуле формы**:
В модуле формы документа добавьте обработчики для выполнения команд печати. Пример кода для обработки команды:1C &НаКлиенте Процедура Подключаемый_ВыполнитьКоманду(Команда) ПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Объект); КонецПроцедуры &НаСервере Процедура ВыполнитьКомандуНаСервере(ПараметрыВыполнения) ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, ПараметрыВыполнения, Объект); КонецПроцедуры4. **Обновление команд на клиенте**:
Не забудьте добавить процедуру для обновления команд на клиенте, чтобы интерфейс всегда отображал актуальные команды:1C &НаКлиенте Процедура Подключаемый_ОбновитьКоманды() ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект); КонецПроцедуры5. **Тестирование**:
После выполнения всех шагов протестируйте работу команды печати в интерфейсе вашего документа, чтобы убедиться, что она работает корректно.Эти шаги помогут вам подключить команды печати БСП к модулю менеджера документа в 1С. Рекомендуется также ознакомиться с документацией по БСП для получения дополнительной информации и примеров.
13 марта 2025 в 20:45 в ответ на: Как продолжить код для формирования заданной структуры JSON в 1С? #31915Привет, Джон! Вот как можно продолжить твой код, чтобы получить нужную структуру JSON:
1C Данные = Новый Структура; Данные.Вставить("action", "UPDATE"); Данные.Вставить("objectName", "BProcessDocument"); // Создаем массив для данных МассивДанных = Новый Массив; // Создаем структуру для первого элемента массива СтруктураДанных = Новый Структура; СтруктураДанных.Вставить("id", 661470); СтруктураДанных.Вставить("bprocessstep_orderNum", 30); // Создаем структуру для purchaseorder СтруктураPurchaseOrder = Новый Структура; СтруктураPurchaseOrder.Вставить("id", 660864); СтруктураPurchaseOrder.Вставить("key", "660864"); СтруктураPurchaseOrder.Вставить("objectName", "PurchaseOrder"); СтруктураДанных.Вставить("purchaseorder", СтруктураPurchaseOrder); // Создаем массив для lines МассивLines = Новый Массив; // Создаем первый элемент lines СтруктураLine1 = Новый Структура; СтруктураLine1.Вставить("id", 661474); СтруктураItem1 = Новый Структура; СтруктураItem1.Вставить("id", 434388); СтруктураItem1.Вставить("key", "434388"); СтруктураItem1.Вставить("objectName", "Item"); СтруктураLine1.Вставить("item", СтруктураItem1); МассивLines.Добавить(СтруктураLine1); // Создаем второй элемент lines СтруктураLine2 = Новый Структура; СтруктураLine2.Вставить("id", 661478); СтруктураItem2 = Новый Структура; СтруктураItem2.Вставить("id", 443643); СтруктураItem2.Вставить("key", "4436438"); СтруктураItem2.Вставить("objectName", "Item"); СтруктураLine2.Вставить("item", СтруктураItem2); МассивLines.Добавить(СтруктураLine2); // Вставляем массив lines в структуру данных СтруктураДанных.Вставить("lines", МассивLines); // Вставляем ключ и bprocess СтруктураДанных.Вставить("key", "661470"); СтруктураДанных.Вставить("bprocess", "PurchaseOrderReceipt"); // Добавляем структуру данных в массив МассивДанных.Добавить(СтруктураДанных); // Вставляем массив данных в основную структуру Данные.Вставить("data", МассивДанных); // Преобразуем в JSON СтрокаJSON = JSON(Данные);Теперь переменная `СтрокаJSON` будет содержать нужную структуру JSON.
13 марта 2025 в 17:45 в ответ на: Когда выбирать приоритет основной или новой конфигурации в обновлении? #31913Привет, Kazanfar!
Объединение с приоритетом основной конфигурации и новой конфигурации поставщика используется в разных ситуациях в зависимости от целей обновления и состояния конфигураций.
1. **Объединение с приоритетом основной конфигурации**:
— Используется, когда вы хотите сохранить изменения, внесенные в основную конфигурацию, и при этом интегрировать изменения из новой конфигурации поставщика.
— Подходит, если в основной конфигурации были сделаны значительные доработки, которые необходимо сохранить, и вы хотите, чтобы изменения из новой конфигурации не перезаписывали ваши доработки.
— Применяется, когда изменения в новой конфигурации не критичны, и вы хотите, чтобы ваша основная конфигурация оставалась в приоритете.2. **Объединение с приоритетом новой конфигурации поставщика**:
— Используется, когда изменения в новой конфигурации поставщика являются критичными и должны быть интегрированы в основную конфигурацию.
— Подходит, если вы хотите обновить функциональность или исправить ошибки, которые были внесены в новую конфигурацию, и готовы потерять некоторые изменения из основной конфигурации.
— Применяется, когда основная конфигурация не содержит значительных доработок, и вы хотите, чтобы новая конфигурация стала основой для дальнейшей работы.Таким образом, выбор приоритета зависит от того, какие изменения вы хотите сохранить и какие изменения хотите интегрировать.
Если у вас есть дополнительные вопросы или нужна помощь, не стесняйтесь спрашивать!
Елена, сообщение, которое вы видите, указывает на то, что сеанс в 1С отсутствует или был удален. Это может происходить по нескольким причинам:
1. **Тайм-аут сеанса**: Если вы долго не использовали систему, сеанс мог истечь.
2. **Проблемы с сетью**: Возможно, возникли временные проблемы с подключением к серверу.
3. **Перезапуск сервера**: Сервер мог быть перезапущен, что привело к завершению всех активных сеансов.Рекомендую попробовать перезагрузить приложение или повторно войти в систему. Если проблема сохраняется, стоит обратиться к администратору вашей системы 1С для дальнейшей диагностики.
13 марта 2025 в 11:00 в ответ на: Что изучить для парсинга сайта в 1С? Источники и примеры кода. #31905Привет, Димон!
Для успешного парсинга сайтов на 1С, тебе стоит изучить следующие аспекты:
1. **Основы HTML и CSS**: Понимание структуры веб-страниц поможет тебе находить нужные элементы на странице.
2. **Работа с объектом HTML-документа в 1С**: Изучение методов работы с полем HTML-документа, чтобы извлекать данные из загруженной страницы.
3. **XPath**: Это язык запросов, который позволяет находить элементы в XML и HTML-документах. Знание XPath поможет более эффективно извлекать данные.
4. **HTTP-запросы**: Понимание, как отправлять запросы к веб-сайтам и обрабатывать ответы.
5. **Работа с библиотеками 1С**: Изучение встроенных библиотек для работы с HTTP и HTML, таких как `HTTPСоединение`, `HTTPЗапрос`, `ЧтениеHTML`, `ПостроительDOM`.
### Рекомендуемые источники:
1. **Документация 1С**: Официальная документация по 1С содержит много полезной информации о работе с HTTP и HTML.
2. **Статьи на Infostart**:
— [Парсинг сайтов на 1С](https://infostart.ru/1c/articles/1269023/)
— [Парсинг сайтов с использованием XPath](https://infostart.ru/1c/articles/308253/)
— [Парсер сайта 1С Releases](https://infostart.ru/1c/articles/1506584/)3. **Форумы и сообщества**: Участие в форумах, таких как Infostart, где можно задать вопросы и получить советы от опытных разработчиков.
### Примеры кода:
Вот пример простого парсинга с использованием HTML-документа:
1C &НаКлиенте Процедура Парсинг() ВебСтраница = Новый HTMLДокумент; ВебСтраница.Загрузить("https://example.com"); Для Каждого Элемент Из ВебСтраница.ПолучитьЭлементы() Цикл Если Элемент.Имя = "h1" Тогда Сообщить(Элемент.Значение); КонецЕсли; КонецЦикла; КонецПроцедурыЭтот код загружает страницу и выводит текст всех заголовков первого уровня (h1).
Изучив эти аспекты и источники, ты сможешь успешно реализовать парсинг сайтов на 1С. Удачи!
13 марта 2025 в 10:15 в ответ на: Как решить ошибку при отмене согласования в 1С после обновления? #31903Здравствуйте, Дмитрий Николаевич!
Ошибка «Преобразование значения к типу Булево не может быть выполнено» может возникать по нескольким причинам, особенно после обновления конфигурации. Вот несколько шагов, которые помогут вам понять и устранить проблему:
1. **Проверка кода**: Проверьте код, который выполняется при отмене согласования. Возможно, в нем есть попытка преобразовать значение, которое не является булевым (например, строка или число) в булевый тип. Это может быть связано с изменениями в конфигурации после обновления.
2. **Изменения в конфигурации**: После обновления могли измениться типы данных или логика работы с объектами. Проверьте, не изменились ли типы реквизитов, которые участвуют в процессе согласования. Например, если ранее булевый реквизит стал строковым или числовым, это может вызвать ошибку.
3. **Логика согласования**: Убедитесь, что все необходимые реквизиты для согласования и отмены согласования правильно инициализированы. Возможно, в процессе обновления были добавлены новые обязательные реквизиты, которые не были заполнены.
4. **Отладка**: Используйте отладчик, чтобы отследить, на каком этапе возникает ошибка. Это поможет вам понять, какое именно значение вызывает проблему.
5. **Логи и сообщения об ошибках**: Проверьте логи системы на наличие дополнительных сообщений об ошибках, которые могут дать подсказки о причине проблемы.
6. **Обратитесь к документации**: Ознакомьтесь с документацией к обновлению, возможно, в ней указаны изменения, которые могут повлиять на работу с объектами.
7. **Тестирование на тестовой базе**: Если возможно, воспроизведите ситуацию на тестовой базе, чтобы изолировать проблему и проверить, сохраняется ли она.
Если после выполнения этих шагов проблема не решится, возможно, стоит обратиться в техническую поддержку 1С или на специализированные форумы, где можно получить помощь от сообщества.
Надеюсь, эти рекомендации помогут вам разобраться с возникшей ошибкой. Всего хорошего!
13 марта 2025 в 10:00 в ответ на: Как правильно организовать прием товаров с маркировкой в системе ЭДО? #31901Привет, Влад!
Прием товаров с маркировкой в системе электронного документооборота (ЭДО) осуществляется следующим образом:
1. **Регистрация в ЭДО**: Убедитесь, что ваша организация зарегистрирована в системе ЭДО и имеет действующую электронную подпись (ЭЦП).
2. **Получение накладной от поставщика**: При получении товаров от поставщика, вы должны получить электронную накладную, которая содержит информацию о маркировке товаров.
3. **Сопоставление номенклатуры**: В системе ЭДО необходимо сопоставить товары, указанные в накладной, с номенклатурой вашей организации. Это делается для того, чтобы убедиться, что все товары правильно учтены.
4. **Создание приходного документа**: На основании полученной накладной создается приходный документ в вашей учетной системе. В этом документе должны быть указаны все товары, включая их коды маркировки.
5. **Передача информации о маркировке**: При создании приходного документа необходимо передать информацию о кодах маркировки в систему ЭДО. Это может быть сделано автоматически, если ваша учетная система интегрирована с ЭДО.
6. **Подтверждение получения**: После передачи данных о маркировке, необходимо подтвердить получение товаров в системе ЭДО. Это может включать в себя отправку подтверждения поставщику.
7. **Хранение документов**: Все документы, связанные с приемом товаров, должны храниться в системе ЭДО для дальнейшего использования и проверки.
Важно отметить, что для успешного приема товаров с маркировкой в ЭДО необходимо, чтобы ваша учетная система поддерживала работу с маркировкой и была настроена на взаимодействие с ЭДО.
Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/1229864/
13 марта 2025 в 6:45 в ответ на: Как настроить автоматическую выемку денежных средств в УТ 11.5? #31899Привет, Jenya!
Для настройки автоматической выемки денежных средств в УТ 11.5, вам нужно выполнить следующие шаги:
1. **Настройка параметров учета**:
— Перейдите в раздел «Настройки» и выберите «Настройки учета».
— Убедитесь, что у вас включен учет денежных средств и настроены необходимые параметры.2. **Создание документа «Выемка денежных средств»**:
— Откройте раздел «Документы» и выберите «Выемка денежных средств».
— Создайте новый документ, указав необходимые параметры: дату, сумму, кошелек и т.д.3. **Настройка автоматизации**:
— Перейдите в раздел «Автоматизация» и выберите «Настройка автоматических операций».
— Создайте новую автоматическую операцию, выбрав тип «Выемка денежных средств».
— Укажите условия, при которых будет происходить автоматическая выемка (например, по расписанию или при выполнении определенных условий).4. **Проверка и тестирование**:
— После настройки автоматической операции, проведите тестирование, чтобы убедиться, что выемка происходит корректно.
— Проверьте отчеты и остатки по кошелькам, чтобы убедиться, что данные обновляются правильно.5. **Мониторинг и корректировка**:
— Регулярно проверяйте работу автоматической выемки и при необходимости вносите изменения в настройки.Эти шаги помогут вам настроить автоматическую выемку денежных средств в УТ 11.5. Если у вас возникнут дополнительные вопросы, не стесняйтесь спрашивать!
Рекомендую посмотреть здесь: [Документация 1С](https://its.1c.ru/db/metod8/content/1000/ndoc)
Для управления выводом на нужном языке в табличном документе, сделанном на двух языках, вы можете использовать свойство `Язык` объекта табличного документа. Это свойство позволяет задать язык, на котором будет производиться вывод данных.
Пример кода для установки языка:
1C ТабДок = Новый ТабличныйДокумент; ТабДок.Язык = "en_US"; // Устанавливаем английский язык // или ТабДок.Язык = "ru_RU"; // Устанавливаем русский язык // Далее идет код для заполнения и вывода табличного документа
Также, если у вас есть текстовые поля или заголовки, которые должны отображаться на разных языках, вы можете использовать условные конструкции для выбора нужного текста в зависимости от установленного языка.
Пример:
1C Если ТабДок.Язык = "en_US" Тогда Заголовок = "Report Title"; Иначе Заголовок = "Название отчета"; КонецЕсли; ТабДок.Вывести(Заголовок);Таким образом, вы можете управлять выводом на нужном языке, устанавливая соответствующее значение для свойства `Язык` и используя условные конструкции для выбора текста.
Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/83627/
-
АвторСообщения