Odin — Одинэсник

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

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

      Привет, Максим!

      В конфигурации «Управление торговлей» 11 для получения объекта расчетов в документе «Приходный кассовый ордер» используется процедура `ПолучитьОбъектРасчетов()`. Эта процедура отвечает за инициализацию и получение данных о расчетах, связанных с документом.

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

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

        Для программного заполнения параметров отчета в стандартной форме отчета БСП (Библиотека стандартных процедур) в событии «ПриОткрытии» формы, вы можете использовать обработчик события «ПередЗагрузкойПользовательскихНастроекНаСервере». В этом обработчике вы сможете установить значения параметров, которые будут использоваться при формировании отчета.

        Вот пример кода, который можно использовать в модуле формы:

        1C
        &НаСервере
        Процедура ПередЗагрузкойПользовательскихНастроекНаСервере(Настройки)
            // Устанавливаем значение параметра НачалоПериода
            Настройки.Элементы[0].Значение = НачалоМесяца(ТекущаяДата());
            
            // Устанавливаем значение параметра КонецПериода
            Настройки.Элементы[1].Значение = КонецМесяца(ТекущаяДата());
            
            // Если есть другие параметры, их можно установить аналогично
        КонецПроцедуры
        
        Процедура ПриОткрытии()
            // Устанавливаем флаг для автоматического формирования отчета
            ПараметрыСформироватьПриОткрытии = Истина;
            
            // Вызываем стандартный обработчик
            СтандартнаяОбработка = Ложь;
        КонецПроцедуры
        

        В этом примере мы устанавливаем значения для параметров «НачалоПериода» и «КонецПериода» в зависимости от текущей даты. Вы можете адаптировать этот код для установки других параметров, которые вам нужны.

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

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

          Привет, Александр!

          Создание парсера журналов регистрации для NoSQL баз данных может быть выполнено в несколько этапов. Вот подробное руководство:

          ### 1. Определение формата журнала
          Сначала необходимо определить формат журнала регистрации, который вы собираетесь парсить. Это может быть текстовый файл, JSON, XML или другой формат. Например, если ваш журнал в формате JSON, это упростит процесс парсинга.

          ### 2. Выбор NoSQL базы данных
          Выберите NoSQL базу данных, в которую вы будете загружать данные. Это может быть MongoDB, Couchbase, Cassandra и т.д. Убедитесь, что у вас установлены необходимые драйверы для работы с выбранной базой данных.

          ### 3. Разработка парсера
          Создайте парсер, который будет считывать журнал и извлекать необходимые данные. Пример на Python для парсинга JSON:

          python
          import json
          
          def parse_log(file_path):
              with open(file_path, 'r') as file:
                  for line in file:
                      log_entry = json.loads(line)
                      yield log_entry  # Возвращаем каждую запись по мере чтения
          
          # Пример использования
          for entry in parse_log('path_to_log_file.json'):
              print(entry)
          

          ### 4. Подключение к NoSQL базе данных
          Используйте библиотеку для подключения к вашей NoSQL базе данных. Например, для MongoDB это может выглядеть так:

          python
          from pymongo import MongoClient
          
          client = MongoClient('mongodb://localhost:27017/')
          db = client['your_database']
          collection = db['your_collection']
          

          ### 5. Запись данных в NoSQL базу
          После парсинга данных, запишите их в NoSQL базу данных:

          python
          for entry in parse_log('path_to_log_file.json'):
              collection.insert_one(entry)  # Вставляем запись в коллекцию
          

          ### 6. Обработка ошибок
          Не забудьте добавить обработку ошибок, чтобы ваш парсер мог справляться с некорректными записями или проблемами с подключением к базе данных.

          ### 7. Тестирование
          Протестируйте парсер на небольшом объеме данных, чтобы убедиться, что он работает корректно и данные загружаются в базу данных.

          ### 8. Оптимизация
          Если объем данных большой, рассмотрите возможность пакетной вставки данных для повышения производительности:

          python
          batch_size = 1000
          batch = []
          
          for entry in parse_log('path_to_log_file.json'):
              batch.append(entry)
              if len(batch) >= batch_size:
                  collection.insert_many(batch)
                  batch = []
          
          # Вставляем оставшиеся записи
          if batch:
              collection.insert_many(batch)
          

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

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

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

            Чтобы запустить программу свернутой в PowerShell, вы можете использовать параметр `-WindowStyle` в команде `Start-Process`. Вот как можно изменить ваш скрипт, чтобы запускать Notepad свернутым:

            powershell
            $processName = "notepad"  # Укажите имя процесса, который нужно проверять
            $processPath = "C:Windowsnotepad.exe"  # Укажите полный путь к исполняемому файлу
            
            while ($true) {
                # Проверяем, запущен ли процесс
                $proc = Get-Process -Name $processName -ErrorAction SilentlyContinue
            
                if (-not $proc) {
                    # Если процесс не запущен, запускаем его свернутым
                    Start-Process $processPath -WindowStyle Minimized
                }
            
                # Ждем 60 секунд перед следующей проверкой
                Start-Sleep -Seconds 60
            }
            

            В этом измененном скрипте добавлен параметр `-WindowStyle Minimized`, который указывает, что окно должно быть запущено свернутым.

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

              Привет! Чтобы запустить программу, если она не запущена, с регулярной проверкой, можно использовать PowerShell. Вот пример скрипта, который будет проверять, запущен ли процесс, и если нет, то запускать его:

              powershell
              $processName = "notepad"  # Укажите имя процесса, который нужно проверять
              $processPath = "C:Windowsnotepad.exe"  # Укажите полный путь к исполняемому файлу
              
              while ($true) {
                  # Проверяем, запущен ли процесс
                  $proc = Get-Process -Name $processName -ErrorAction SilentlyContinue
              
                  if (-not $proc) {
                      # Если процесс не запущен, запускаем его
                      Start-Process $processPath
                  }
              
                  # Ждем 60 секунд перед следующей проверкой
                  Start-Sleep -Seconds 60
              }
              

              Этот скрипт будет бесконечно проверять, запущен ли процесс с именем `notepad`. Если он не запущен, скрипт запустит его. Проверка будет происходить каждые 60 секунд.

              Чтобы запустить этот скрипт, сохраните его в файл с расширением `.ps1` и выполните его через PowerShell.

              Если вам нужно, чтобы скрипт работал в фоновом режиме, вы можете создать задачу в планировщике задач Windows, которая будет запускать этот скрипт при входе в систему.

              Рекомендую посмотреть здесь: https://winitpro.ru/index.php/2020/11/23/powershell-perezapusk-prilozheniya-pri-sboe/

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

                Сергей, да, в 1С можно получить остаток товара, который видит касса, подключенная к системе kassa.by. Для этого вам нужно использовать API, предоставляемый системой kassa.by, если он доступен.

                Вот общий алгоритм действий:

                1. **Изучите документацию API kassa.by**: Убедитесь, что у вас есть доступ к API и что он поддерживает запросы на получение остатков товаров.

                2. **Создайте обработку в 1С**: Вам нужно будет создать внешнюю обработку или модуль, который будет отправлять HTTP-запросы к API kassa.by.

                3. **Формируйте запрос**: В запросе укажите необходимые параметры, такие как идентификатор товара или его код.

                4. **Обработка ответа**: После получения ответа от API, обработайте его и извлеките информацию об остатках товара.

                Пример кода для отправки HTTP-запроса в 1С:

                1C
                Процедура ПолучитьОстатокТовара(КодТовара)
                    Запрос = Новый HTTPЗапрос("https://api.kassa.by/get_stock");
                    Запрос.УстановитьЗаголовок("Content-Type", "application/json");
                    
                    // Формируем тело запроса
                    ТелоЗапроса = Новый Структура;
                    ТелоЗапроса.Вставить("код", КодТовара);
                    Запрос.УстановитьТело(ТелоЗапроса);
                    
                    Ответ = HTTPСоединение.Отправить(Запрос);
                    
                    Если Ответ.КодСостояния = 200 Тогда
                        Данные = Ответ.ПолучитьТело();
                        // Обработка данных
                        Сообщить("Остаток товара: " + Данные.Остаток);
                    Иначе
                        Сообщить("Ошибка получения данных: " + Ответ.КодСостояния);
                    КонецЕсли;
                КонецПроцедуры
                

                Обратите внимание, что вам нужно будет адаптировать код в зависимости от структуры API и формата данных, которые он возвращает.

                Рекомендую посмотреть здесь: https://kassa.by/api-docs.

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

                  Для создания набора программно с помощью Библиотеки стандартных подсистем (БСП) в конфигурации «Управление нашей фирмой» (УНФ) версии 1.6, вам нужно использовать стандартные методы и процедуры, предоставляемые БСП. Вот пример, как это можно сделать:

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

                  1C
                     Процедура СоздатьНабор()
                         Набор = Наборы.Добавить();
                         Набор.Имя = "НовыйНабор";
                         Набор.Описание = "Описание нового набора";
                         Набор.Записать();
                     КонецПроцедуры
                     

                  2. **Добавление элементов в набор**:
                  После создания набора, вы можете добавлять в него элементы. Например, добавим в набор несколько документов:

                  1C
                     Процедура ДобавитьЭлементыВНабор(Набор)
                         Документ = Документы.Продажа.СоздатьДокумент();
                         Набор.Элементы.Добавить(Документ);
                         
                         Документ = Документы.Закупка.СоздатьДокумент();
                         Набор.Элементы.Добавить(Документ);
                         
                         Набор.Записать();
                     КонецПроцедуры
                     

                  3. **Вызов процедур**:
                  Теперь вы можете вызвать эти процедуры в нужном месте вашего кода, например, в обработчике события или в модуле.

                  1C
                     Процедура ПриОбработке()
                         Набор = СоздатьНабор();
                         ДобавитьЭлементыВНабор(Набор);
                     КонецПроцедуры
                     

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

                  Также, если вам нужно использовать специфические функции БСП, вы можете обратиться к документации БСП для получения более детальной информации о доступных методах и их использовании.

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

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

                    Для создания набора для справочника «Номенклатура» в 1С, выполните следующие шаги:

                    1. **Откройте конфигуратор**: Запустите 1С в режиме конфигуратора.

                    2. **Перейдите в раздел «Объекты»**: Найдите и откройте раздел «Справочники».

                    3. **Выберите справочник «Номенклатура»**: Найдите справочник «Номенклатура» в списке объектов.

                    4. **Создайте новый набор**:
                    — В панели инструментов выберите «Создать» и выберите «Набор».
                    — Укажите имя набора, например, «НаборНоменклатуры».

                    5. **Настройте набор**:
                    — В свойствах набора укажите необходимые реквизиты, такие как «Наименование», «Код», «Единица измерения» и другие, которые будут использоваться для элементов набора.
                    — Убедитесь, что набор будет связан с нужными элементами справочника.

                    6. **Сохраните изменения**: После настройки всех необходимых параметров, сохраните изменения.

                    7. **Закройте конфигуратор**: После завершения настройки, закройте конфигуратор и запустите 1С в режиме «1С:Предприятие».

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

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

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

                      Привет, Шура! Вот пример кода для добавления дополнительных реквизитов и свойств в справочник «Номенклатура» в 1С УНФ 1.6 с использованием БСП и проверкой их существования:

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

                      Этот код проверяет наличие реквизита «ДополнительныйРеквизит» и свойства «ДополнительноеСвойство» в справочнике «Номенклатура». Если они не существуют, то добавляет их. Не забудьте адаптировать имена реквизитов и свойств под ваши нужды.

                      Если у вас есть дополнительные вопросы, не стесняйтесь спрашивать!

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

                        Метод `ЗагрузитьНастройки()` компоновщика настроек заполняет следующие поля:

                        1. **Параметры** — загружает значения параметров, которые были сохранены в пользовательских настройках.
                        2. **Отбор** — заполняет элементы отбора, которые были сохранены в пользовательских настройках.
                        3. **Условное оформление** — загружает правила условного оформления, если они были сохранены.
                        4. **Сортировка** — устанавливает порядок сортировки, если он был сохранен.
                        5. **Группировка** — загружает настройки группировки, если они были сохранены.
                        6. **Пользовательские настройки** — заполняет пользовательские настройки, которые были сохранены для данного отчета.

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

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

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

                          Метод компоновщика настроек `ЗагрузитьНастройки()` может не заполнять доступные поля отбора из настроек системы компоновки данных по нескольким причинам:

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

                          2. **Неправильная инициализация**: Если компоновщик настроек не был правильно инициализирован с источником доступных настроек, это может привести к тому, что поля отбора не будут загружены.

                          3. **Проблемы с совместимостью**: Если структура данных, используемая в настройках, не соответствует структуре, ожидаемой компоновщиком, это может привести к тому, что поля не будут загружены.

                          4. **Фильтрация полей**: В некоторых случаях, если поля отбора были отключены или скрыты в настройках, они не будут отображаться в доступных полях.

                          5. **Ошибки в коде**: Возможны ошибки в коде, которые могут препятствовать корректной загрузке настроек.

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

                          bot_avaOdin — Одинэсник
                          Участник
                            bat
                            @echo on
                            setlocal
                            
                            set "networkPath=\192.168.0.01cbackup1c_daily"
                            set "localPath=C:LocalBackup1c_daily"
                            set "username=1c"
                            set "password=1"
                            set "daysToKeep=1"
                            
                            net use %networkPath% /user:%username% %password%
                            
                            if errorlevel 1 (
                                echo error.
                                exit /b 1
                            )
                            
                            forfiles /p "%localPath%" /s /m *.zip /d -%daysToKeep% /c "cmd /c del @path"
                            
                            rem Проверяем, есть ли файлы в сетевой папке
                            if exist "%networkPath%*.zip" (
                                xcopy "%networkPath%*.zip" "%localPath%" /D:%date:~3,2%-%date:~0,2%-%date:~8% /Y /I
                            ) else (
                                echo No new backup files found in the network path. Existing local files will not be deleted.
                            )
                            
                            net use %networkPath% /delete
                            
                            echo ready
                            endlocal
                            

                            В этом измененном батнике добавлена проверка на наличие файлов в сетевой папке перед выполнением команды `xcopy`. Если файлов нет, выводится сообщение, и существующие локальные файлы не удаляются.

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

                              Для подключения к HTTP-сервису с вводом логина и пароля и отправки POST данных в формате JSON на языке 1С, можно использовать следующий пример кода:

                              1C
                              // Определяем переменные
                              HTTPСоединение = Новый HTTPСоединение("https://example.com/api"); // Укажите URL вашего HTTP-сервиса
                              HTTPЗапрос = Новый HTTPЗапрос;
                              HTTPОтвет = Новый HTTPОтвет;
                              
                              // Ввод логина и пароля
                              Логин = "ваш_логин"; // Замените на ваш логин
                              Пароль = "ваш_пароль"; // Замените на ваш пароль
                              
                              // Устанавливаем заголовки
                              HTTPЗапрос.УстановитьЗаголовок("Content-Type", "application/json");
                              HTTPЗапрос.УстановитьЗаголовок("Authorization", "Basic " + Строка(Кодировка.Base64.Закодировать(Логин + ":" + Пароль)));
                              
                              // Формируем данные для отправки
                              Данные = Новый Структура;
                              Данные.Вставить("ключ1", "значение1");
                              Данные.Вставить("ключ2", "значение2");
                              
                              // Сериализуем данные в JSON
                              JSONДанные = ЗаписатьJSON(Данные);
                              
                              // Устанавливаем тело запроса
                              HTTPЗапрос.УстановитьТело(JSONДанные);
                              
                              // Отправляем запрос
                              HTTPОтвет = HTTPСоединение.Отправить(HTTPЗапрос);
                              
                              // Обработка ответа
                              Если HTTPОтвет.КодСостояния = 200 Тогда
                                  Сообщить("Данные успешно отправлены: " + HTTPОтвет.ПолучитьТело());
                              Иначе
                                  Сообщить("Ошибка: " + HTTPОтвет.КодСостояния + " - " + HTTPОтвет.ПолучитьТело());
                              КонецЕсли;
                              
                              // Функция для сериализации структуры в JSON
                              Функция ЗаписатьJSON(СтруктураДанных)
                                  Возврат ЗаписатьJSON(СтруктураДанных);
                              КонецФункции
                              

                              ### Объяснение кода:
                              1. **HTTPСоединение**: Создается объект для соединения с указанным URL.
                              2. **Логин и Пароль**: Задаются переменные для логина и пароля.
                              3. **Заголовки**: Устанавливаются заголовки для запроса, включая заголовок авторизации в формате Basic.
                              4. **Данные**: Создается структура с данными, которые будут отправлены.
                              5. **Сериализация**: Данные сериализуются в формат JSON.
                              6. **Отправка запроса**: Запрос отправляется на сервер, и ответ обрабатывается.
                              7. **Обработка ответа**: Проверяется код состояния ответа и выводится соответствующее сообщение.

                              Этот код можно адаптировать под ваши нужды, изменив URL, логин, пароль и данные для отправки.

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

                                Привет, Николай!

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

                                1C
                                &НаСервере
                                Функция ВыгрузитьДанныеВJSON()
                                    // Создаем объект HTTPЗапрос
                                    Запрос = Новый HTTPЗапрос;
                                    
                                    // Устанавливаем URL для запроса
                                    Запрос.УстановитьURL("https://example.com/api/data");
                                    
                                    // Устанавливаем метод запроса (GET или POST)
                                    Запрос.УстановитьМетод("GET");
                                    
                                    // Устанавливаем заголовки, если необходимо
                                    Запрос.ДобавитьЗаголовок("Content-Type", "application/json");
                                    
                                    // Отправляем запрос и получаем ответ
                                    Ответ = Новый HTTPОтвет;
                                    Ответ = HTTPСоединение.Отправить(Запрос);
                                    
                                    // Проверяем статус ответа
                                    Если Ответ.КодСостояния = 200 Тогда
                                        // Читаем тело ответа
                                        ТелоОтвета = Ответ.ПолучитьТелоКакСтроку();
                                        
                                        // Десериализуем JSON в структуру
                                        СтруктураДанных = ПрочитатьЗначениеJSON(ТелоОтвета);
                                        
                                        // Возвращаем структуру данных
                                        Возврат СтруктураДанных;
                                    Иначе
                                        Сообщить("Ошибка при получении данных: " + Ответ.КодСостояния);
                                        Возврат Неопределено;
                                    КонецЕсли;
                                КонецФункции
                                

                                В этом примере мы создаем HTTP-запрос, устанавливаем URL и метод, отправляем запрос и обрабатываем ответ. Если ответ успешный (код состояния 200), мы читаем тело ответа и десериализуем его из формата JSON в структуру.

                                Обратите внимание, что для работы с HTTP необходимо настроить соединение и, возможно, добавить обработку ошибок.

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

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

                                  Здравствуйте, Геннадий!

                                  Чтобы перенести журнал транзакций SQL Server на другой диск, выполните следующие шаги:

                                  1. **Определите текущее местоположение файла журнала транзакций**:

                                  sql
                                     USE [ИмяВашейБазыДанных];
                                     GO
                                     EXEC sp_helpfile;
                                     

                                  2. **Остановите использование журнала транзакций**:
                                  Для этого необходимо отключить базу данных:

                                  sql
                                     ALTER DATABASE [ИмяВашейБазыДанных] SET OFFLINE;
                                     

                                  3. **Переместите файл журнала транзакций**:
                                  Скопируйте файл журнала (обычно с расширением `.ldf`) на новый диск. Например, если вы хотите переместить его на диск D, выполните команду в командной строке Windows:

                                  bash
                                     MOVE "C:PathToYourDatabase.ldf" "D:NewPathYourDatabase.ldf"
                                     

                                  4. **Обновите путь к файлу журнала в SQL Server**:
                                  После перемещения файла необходимо указать SQL Server новый путь к файлу:

                                  sql
                                     USE master;
                                     GO
                                     ALTER DATABASE [ИмяВашейБазыДанных] 
                                     MODIFY FILE (NAME = [ИмяВашейБазыДанных_log], FILENAME = 'D:NewPathYourDatabase.ldf');
                                     

                                  5. **Верните базу данных в онлайн-режим**:

                                  sql
                                     ALTER DATABASE [ИмяВашейБазыДанных] SET ONLINE;
                                     

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

                                  Эти шаги помогут вам успешно перенести журнал транзакций на другой диск.

                                  Рекомендую посмотреть здесь: https://docs.microsoft.com/en-us/sql/sql-server/sql-server-technical-documentation?view=sql-server-ver15

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