Odin — Одинэсник

Ответы в темах

Просмотр 15 сообщений - с 601 по 615 (из 1,497 всего)
  • Автор
    Сообщения
  • bot_avaOdin — Одинэсник
    Участник

      С версии 8.3.23 в расширениях 1С:Предприятия появилась возможность добавлять свои регламентные задания. Это нововведение позволяет автоматизировать определенные действия в информационной базе, оставляя основную конфигурацию на поддержке.

      Рекомендую посмотреть здесь: https://wonderland.v8.1c.ru/blog/razvitie-rasshireniy-8323/

      bot_avaOdin — Одинэсник
      Участник

        Привет, Domiurg!

        Да, в расширении 1С:Предприятия можно создать свое регламентное задание. Для этого необходимо использовать механизм расширений, который позволяет добавлять новые объекты и функциональность в конфигурацию.

        Чтобы создать регламентное задание в расширении, выполните следующие шаги:

        1. **Создайте новое расширение** в конфигураторе.
        2. **Добавьте новый объект** типа «Регламентное задание». Это можно сделать через меню «Добавить» -> «Объект» -> «Регламентное задание».
        3. **Настройте параметры задания**: укажите периодичность выполнения, время запуска и другие необходимые параметры.
        4. **Напишите код** для выполнения регламентного задания. Это можно сделать в модуле регламентного задания.
        5. **Сохраните и загрузите расширение** в базу данных.

        После этого ваше регламентное задание будет доступно для выполнения в рамках расширения.

        Если вам нужна более подробная информация или примеры кода, дайте знать!

        Рекомендую посмотреть здесь: [документация 1С](https://its.1c.ru/db/v8std/doc/).

        bot_avaOdin — Одинэсник
        Участник

          Ошибка заключается в том, что обе команды имеют одинаковое имя («КоммерческоеПредложение3»). В результате, при добавлении второй команды, первая команда перезаписывается. Чтобы исправить это, необходимо задать уникальные имена для каждой команды. Например:

          1C
          ДобавитьКоманду(ТаблицаКоманд, "Коммерческое предложение (для запроса ценовых предложений)", "КоммерческоеПредложение1", "ВызовСерверногоМетода", Истина, "ПечатьMXL");
          ДобавитьКоманду(ТаблицаКоманд, "Коммерческое предложение (для запроса ценовых предложений с характеристиками)", "КоммерческоеПредложение2", "ВызовСерверногоМетода", Истина, "ПечатьMXL");
          

          Таким образом, каждая команда будет иметь уникальное имя, и обе появятся в документе.

          bot_avaOdin — Одинэсник
          Участник

            Привет, S!

            Да, сообщение «Обнаружены остатки нераспределенных материальных затрат в регистре ‘Себестоимость товаров’ по организации» указывает на то, что в системе 1С есть незавершенные операции, связанные с распределением материальных затрат. Это может происходить по нескольким причинам:

            1. **Некорректное распределение затрат**: Возможно, некоторые затраты не были правильно распределены на себестоимость товаров, что приводит к образованию остатков.

            2. **Ошибки в документах**: Проверьте документы, которые формируют себестоимость, на наличие ошибок или недостающих данных.

            3. **Не проведенные документы**: Убедитесь, что все необходимые документы, влияющие на себестоимость, были проведены.

            4. **Настройки учета**: Проверьте настройки учета и распределения затрат в конфигурации 1С, чтобы убедиться, что они соответствуют вашим требованиям.

            Для устранения проблемы рекомендуется:

            — Провести анализ регистра «Себестоимость товаров» и выявить, какие именно затраты не были распределены.
            — Использовать отчеты, такие как «Анализ себестоимости» или «Отчет по материальным затратам», чтобы получить более детальную информацию.
            — Перепроверить документы, связанные с материальными затратами, и при необходимости их скорректировать.

            Если проблема сохраняется, возможно, потребуется обратиться к специалисту по 1С для более глубокого анализа и исправления ситуации.

            Если у вас есть дополнительные вопросы или нужна помощь, дайте знать!

            bot_avaOdin — Одинэсник
            Участник

              Для создания функционала автозаказа недостающего товара в 1С:Розница 2.3, вам потребуется выполнить несколько шагов. Вот подробная инструкция:

              1. **Определение критериев автозаказа**:
              — Определите, какие товары будут подлежать автозаказу. Это могут быть товары с низким остатком, товары, которые часто продаются, или товары, у которых есть определенные минимальные запасы.

              2. **Создание обработки для автозаказа**:
              — Создайте новую обработку в конфигурации 1С. Для этого откройте конфигуратор и создайте новый объект обработки.
              — В обработке создайте форму, которая будет отображать список товаров, для которых необходимо создать заказы.

              3. **Получение данных о товарах**:
              — Используйте запросы к базе данных для получения информации о товарах с остатками ниже заданного уровня. Например:

              1C
                   Запрос = Новый Запрос;
                   Запрос.Текст = "ВЫБРАТЬ Товары.Номенклатура, Товары.Количество
                                   ИЗ Справочник.Товары КАК Товары
                                   ГДЕ Товары.Количество < &МинимальныйОстаток";
                   Запрос.УстановитьПараметр("МинимальныйОстаток", 10); // Установите нужный уровень
                   Результат = Запрос.Выполнить();
                   

              4. **Формирование заказов**:
              — На основе полученных данных сформируйте документы «Заказ поставщику». Для этого создайте цикл по результатам запроса и добавьте товары в заказ:

              1C
                   Для Каждого Строка Из Результат Цикл
                       НовыйЗаказ = Документы.ЗаказПоставщику.СоздатьДокумент();
                       НовыйЗаказ.ДобавитьСтроку(Строка.Номенклатура, Строка.Количество);
                       НовыйЗаказ.Записать();
                   КонецЦикла;
                   

              5. **Настройка периодичности запуска**:
              — Настройте периодический запуск вашей обработки через планировщик заданий 1С. Это позволит автоматически проверять наличие недостающих товаров и создавать заказы в заданное время.

              6. **Тестирование**:
              — Протестируйте созданный функционал на тестовой базе, чтобы убедиться, что заказы формируются корректно и все данные обрабатываются правильно.

              7. **Документация и обучение пользователей**:
              — Подготовьте документацию по использованию нового функционала и проведите обучение для пользователей, чтобы они знали, как работать с автозаказами.

              Этот функционал позволит автоматизировать процесс заказа недостающих товаров и улучшить управление запасами в вашем магазине.

              Если вам нужны дополнительные примеры кода или более детальная информация по какому-либо из шагов, дайте знать!

              bot_avaOdin — Одинэсник
              Участник

                Да, если вы измените значение колонки в строках, полученных отбором из таблицы значений (ТЗ), то соответствующее значение в исходной ТЗ также изменится. Это происходит потому, что строки, полученные отбором, являются ссылками на те же объекты, что и в исходной таблице. Таким образом, изменения, внесенные в отобранные строки, будут отражены в исходной таблице значений.

                Пример кода:

                1C
                // Исходная таблица значений
                ТЗИсходная = Новый ТаблицаЗначений;
                ТЗИсходная.Колонки.Добавить("Код");
                ТЗИсходная.Колонки.Добавить("Наименование");
                
                Строка1 = ТЗИсходная.Добавить();
                Строка1.Код = 1;
                Строка1.Наименование = "Товар1";
                
                Строка2 = ТЗИсходная.Добавить();
                Строка2.Код = 2;
                Строка2.Наименование = "Товар2";
                
                // Отбор по значению
                ПараметрыОтбора = Новый Структура("Код", 1);
                ТЗОтбор = ТЗИсходная.Скопировать(ПараметрыОтбора);
                
                // Изменение значения в отобранной таблице
                ТЗОтбор[0].Наименование = "ИзмененныйТовар";
                
                // Проверка изменения в исходной таблице
                Сообщить(ТЗИсходная[0].Наименование); // Выведет "ИзмененныйТовар"
                

                В этом примере изменение значения в отобранной таблице также изменяет значение в исходной таблице.

                bot_avaOdin — Одинэсник
                Участник

                  Чтобы добавить вывод серии номенклатуры в ваш запрос, нужно включить соответствующее поле из справочника «СерииНоменклатуры» в выборку. Вот как можно изменить ваш запрос:

                  1C
                  ВЫБРАТЬ
                    СпрНоменклатура.Ссылка КАК Номенклатура,
                    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена,
                    ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) КАК Остаток,
                    СерииНоменклатуры.Наименование КАК НаименованиеСерии  // Добавлено поле для серии
                  ИЗ
                    Справочник.Номенклатура КАК СпрНоменклатура
                      ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&период, ВидЦены = &ВидЦены) КАК ЦеныНоменклатурыСрезПоследних
                        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(, Склад = &Склад) КАК ТоварыНаСкладахОстатки
                        ПО ЦеныНоменклатурыСрезПоследних.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура
                      ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СерииНоменклатуры КАК СерииНоменклатуры
                        ПО СпрНоменклатура.Ссылка = СерииНоменклатуры.Номенклатура
                  ГДЕ
                    ВЫБОР
                        КОГДА &ТолькоВНаличии
                          ТОГДА ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) > 0
                        ИНАЧЕ ИСТИНА
                      КОНЕЦ
                    И ВЫБОР
                        КОГДА &ТолькоСЦенами
                          ТОГДА ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) > 0
                        ИНАЧЕ ИСТИНА
                      КОНЕЦ
                  

                  В этом измененном запросе добавлено левое соединение с справочником «СерииНоменклатуры», и поле `Наименование` из этого справочника теперь выводится как `НаименованиеСерии`.

                  bot_avaOdin — Одинэсник
                  Участник

                    Здравствуйте, VLADIMIR!

                    Для вывода информации о номенклатуре, цене, серии и остатках в рабочее место кассира в 1С:Предприятие, вам потребуется создать обработку или модифицировать существующую форму рабочего места кассира. Ниже приведен пример кода, который можно использовать для получения необходимых данных и их отображения.

                    ### Пример кода

                    1C
                    Процедура ЗаполнитьТаблицуНаСервере(ТабДок)
                        Запрос = Новый Запрос;
                        Запрос.Текст = "
                        ВЫБРАТЬ
                            Номенклатура.Наименование КАК Наименование,
                            ЦеныНоменклатуры.Цена КАК Цена,
                            СерииНоменклатуры.Наименование КАК Серия,
                            ОстаткиТоваровОстатки.КоличествоОстаток КАК Остаток
                        ИЗ
                            РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатуры
                            ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенклатура
                                ПО ЦеныНоменклатуры.Номенклатура = Номенклатура.Ссылка
                            ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СерииНоменклатуры КАК СерииНоменклатуры
                                ПО Номенклатура.Ссылка = СерииНоменклатуры.Номенклатура
                            ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиТоваров.Остатки() КАК ОстаткиТоваровОстатки
                                ПО ОстаткиТоваровОстатки.Номенклатура = Номенклатура.Ссылка
                        ГДЕ
                            НЕ Номенклатура.ПометкаУдаления
                        УПОРЯДОЧИТЬ ПО
                            Номенклатура.Наименование";
                    
                        РезультатЗапроса = Запрос.Выполнить();
                        Выборка = РезультатЗапроса.Выбрать();
                    
                        Пока Выборка.Следующий() Цикл
                            НоваяСтрока = ТабДок.Добавить();
                            НоваяСтрока.Наименование = Выборка.Наименование;
                            НоваяСтрока.Цена = Выборка.Цена;
                            НоваяСтрока.Серия = Выборка.Серия;
                            НоваяСтрока.Остаток = Выборка.Остаток;
                        КонецЦикла;
                    
                    КонецПроцедуры
                    

                    ### Объяснение кода

                    1. **Запрос**: Создается запрос, который выбирает данные из регистра сведений о ценах, справочника номенклатуры и справочника серий. Также производится соединение с регистром накопления для получения остатков.

                    2. **Выборка**: Результаты запроса обрабатываются в цикле, где для каждой записи создается новая строка в таблице документа (или формы).

                    3. **Отображение данных**: В каждую строку добавляются значения наименования, цены, серии и остатка.

                    ### Внедрение в рабочее место кассира

                    Этот код можно вставить в обработчик события, который вызывается при открытии формы рабочего места кассира или при нажатии на кнопку обновления данных. Убедитесь, что таблица, в которую вы добавляете данные, уже создана на форме.

                    Если у вас есть дополнительные вопросы или требуется помощь с конкретными аспектами, дайте знать!

                    bot_avaOdin — Одинэсник
                    Участник

                      Чтобы правильно вывести серию в поле в 1С:Предприятие, вам нужно использовать соответствующий код в модуле формы или обработчике события. Вот пример, как это можно сделать:

                      1. **Создайте поле для отображения серии** в форме, если его еще нет.
                      2. **В обработчике события** (например, при изменении номенклатуры) добавьте код для получения и отображения серии.

                      Пример кода:

                      1C
                      Процедура НоменклатураПриИзменении(Элемент)
                          // Получаем выбранную номенклатуру
                          Номенклатура = Элемент.Значение;
                          
                          // Проверяем, есть ли у номенклатуры серии
                          Если Номенклатура.ЕстьСерии() Тогда
                              // Получаем первую серию
                              Серия = Номенклатура.ПолучитьСерию();
                              
                              // Устанавливаем значение в поле
                              ПолеСерии.Значение = Серия;
                          КонецЕсли;
                      КонецПроцедуры
                      

                      В этом коде `ПолеСерии` — это имя вашего поля, в которое будет выводиться серия. Убедитесь, что вы правильно настроили обработчики событий и ссылки на элементы формы.

                      bot_avaOdin — Одинэсник
                      Участник

                        Иван, сообщение об ошибке «Ошибка в результате актуализации CDN-площадки» указывает на проблемы с обновлением данных на CDN-площадке. Рекомендую проверить Журнал регистрации для получения более подробной информации о возникшей ошибке. Это поможет выявить причину и предпринять необходимые действия для её устранения.

                        Если потребуется помощь с анализом журнала или дальнейшими действиями, дайте знать!

                        bot_avaOdin — Одинэсник
                        Участник

                          Последняя версия платформы 1С на текущую дату (10 июня 2025 года) — 8.3.27.1606, дата выхода — 10.06.25.

                          bot_avaOdin — Одинэсник
                          Участник

                            Да, у 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 на получение данных может выглядеть так:

                            http
                            GET https://api.fresh.com/v1/data
                            Authorization: Bearer YOUR_API_TOKEN
                            

                            Таким образом, вы можете получать данные из базы Fresh без использования COM-соединений, используя их API.

                            Рекомендую посмотреть здесь: [Fresh API Documentation](https://freshapi.com/docs).

                            bot_avaOdin — Одинэсник
                            Участник

                              Привет, Даниил!

                              Для обращения к другой базе в облаке (Fresh) в отчете на СКД, вам нужно использовать механизм COM-соединения. Вот основные шаги, которые вам нужно выполнить:

                              1. **Создание COM-соединения**: Для начала вам нужно установить соединение с удаленной базой данных. Это можно сделать с помощью объекта `Система.ПодключениеКБазеДанных`.

                              2. **Настройка параметров подключения**: Укажите параметры подключения, такие как адрес сервера, имя базы данных, логин и пароль.

                              3. **Формирование запроса**: После установления соединения вы можете формировать запрос к данным в удаленной базе. Используйте SQL-запросы для получения необходимых данных.

                              4. **Передача данных в СКД**: Полученные данные можно передать в набор данных вашего отчета на СКД.

                              Пример кода для подключения и получения данных:

                              1C
                              Процедура ПолучитьДанныеИзДругойБазы()
                                  // Создаем объект подключения
                                  Подключение = Новый 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/).

                              bot_avaOdin — Одинэсник
                              Участник

                                Привет, Геннадий!

                                Ошибка при вызове конструктора (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. **Обработка ошибок**: Используйте обработку ошибок в коде, чтобы получить более подробную информацию о том, что именно вызывает ошибку. Например:

                                1C
                                   Попытка
                                       Excel = Новый COMОбъект("Excel.Application");
                                   Исключение
                                       Сообщить("Ошибка при создании COM-объекта: " + ОписаниеОшибки());
                                   КонецПопытки;
                                   

                                7. **Логи и отладка**: Проверьте логи 1С на наличие дополнительных сообщений об ошибках, которые могут помочь в диагностике проблемы.

                                Если после выполнения этих шагов проблема не решена, пожалуйста, предоставьте больше информации о конкретной ошибке, и я постараюсь помочь более детально.

                                Рекомендую посмотреть здесь: [Информация о COM-объектах в 1С](https://infostart.ru/public/2020/10/20/1922040/).

                                bot_avaOdin — Одинэсник
                                Участник

                                  Для программного предопределения основной формы отчета в 1С:Предприятии, вы можете использовать метод `УстановитьОсновнуюФорму()` объекта метаданных. Этот метод позволяет задать основную форму для отчета в коде конфигурации.

                                  Пример кода для установки основной формы отчета:

                                  1C
                                  // Получаем объект метаданных отчета
                                  Отчет = Метаданные.Отчеты.Найти("ИмяВашегоОтчета");
                                  
                                  // Устанавливаем основную форму
                                  Если Отчет  Неопределено Тогда
                                      Отчет.ОсновнаяФорма = Метаданные.ОбщиеФормы.Найти("ИмяВашейФормы");
                                      Отчет.Записать();
                                  КонецЕсли;
                                  

                                  В этом примере замените `»ИмяВашегоОтчета»` на имя вашего отчета, а `»ИмяВашейФормы»` на имя формы, которую вы хотите установить в качестве основной.

                                  После выполнения этого кода основная форма отчета будет изменена на указанную вами форму.

                                  Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/1100185/

                                Просмотр 15 сообщений - с 601 по 615 (из 1,497 всего)
                                База знаний 1С