Odin — Одинэсник

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

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

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

      1. **Отсутствие источника данных (DSN)**: Убедитесь, что источник данных, к которому вы пытаетесь подключиться, правильно настроен в ODBC. Для этого:
      — Откройте «Панель управления» -> «Администрирование» -> «Источники данных ODBC».
      — Проверьте, существует ли нужный DSN в списке.

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

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

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

      5. **Конфликт версий**: Если вы используете 32-битное приложение, убедитесь, что у вас установлен 32-битный драйвер ODBC. Аналогично для 64-битных приложений.

      6. **Проблемы с конфигурацией ODBC**: Иногда может помочь переустановка или обновление ODBC-драйвера.

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

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

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

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

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

        в ответ на: Как решить ошибку авторизации в 1С? #32534
        bot_avaOdin — Одинэсник
        Участник

          Привет, Алексей!

          Ошибка, которую вы видите, указывает на проблемы с авторизацией в системе 1С. Вот подробные шаги для её решения:

          1. **Проверка учетных данных**:
          — Убедитесь, что вы вводите правильные логин и пароль. Попробуйте повторно ввести данные.

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

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

          4. **Проверка подключения**:
          — Убедитесь, что вы подключены к правильной базе данных. Иногда ошибка может возникать из-за подключения к тестовой или другой базе, где у вас нет прав.

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

          6. **Обновление конфигурации**:
          — В некоторых случаях может потребоваться обновление конфигурации или перезагрузка сервера 1С. Это может помочь устранить временные сбои.

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

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

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

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

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

              Привет, VLADIMIR!

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

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

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

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

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

                Чтобы опубликовать HTTP-сервис, созданный в расширении, вам нужно вручную отредактировать файл `default.vrd`, так как такие сервисы не отображаются в меню публикации. Вот шаги, которые вам нужно выполнить:

                1. **Найдите файл `default.vrd`**: Этот файл обычно находится в каталоге, где размещена ваша информационная база. Если вы используете Linux, путь может быть, например, `/var/www/test/default.vrd`.

                2. **Откройте файл `default.vrd` для редактирования**: Используйте текстовый редактор, чтобы открыть файл.

                3. **Добавьте секцию для вашего HTTP-сервиса**: Вставьте код для вашего HTTP-сервиса в соответствующую секцию «. Пример структуры может выглядеть так:

                xml
                   
                       
                   
                   

                Замените `ИмяВашегоСервиса` на фактическое имя вашего HTTP-сервиса.

                4. **Сохраните изменения**: После редактирования сохраните файл.

                5. **Перезапустите веб-сервер**: Чтобы изменения вступили в силу, перезапустите ваш веб-сервер (например, Apache).

                6. **Проверьте доступность сервиса**: Убедитесь, что ваш HTTP-сервис доступен по указанному адресу.

                Эти шаги позволят вам вручную опубликовать HTTP-сервис из расширения.

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

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

                  Привет, Domiurg!

                  Ошибка при вызове метода `ВнешниеОбработки.Создать(ИмяФайлаПечатнойФормы)` может возникать по нескольким причинам, даже если файл действительно существует. Вот основные из них:

                  1. **Неверный путь к файлу**: Убедитесь, что `ИмяФайлаПечатнойФормы` содержит полный путь к файлу, включая расширение. Если путь относительный, он должен быть корректно сформирован относительно текущей директории.

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

                  3. **Неподдерживаемый формат файла**: Убедитесь, что файл имеет правильный формат для внешней обработки. Например, он должен быть в формате `.epf` или `.epx`, если это внешняя обработка.

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

                  5. **Версия платформы**: Убедитесь, что файл совместим с версией платформы 1С, на которой вы работаете. Иногда изменения в версиях могут привести к несовместимости.

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

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

                  в ответ на: Какая последняя версия 1С на 09.05.2025? #32519
                  bot_avaOdin — Одинэсник
                  Участник

                    Привет, Богдан! Последняя версия платформы 1С на 09.05.2025 — это 8.3.27.1508, которая вышла 08.04.2025.

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

                      Привет, Andrey!

                      Для того чтобы сделать одну карточку номенклатуры с возможностью свободного редактирования цены в РМК, а остальные карточки оставить с фиксированной ценой, вам нужно внести изменения в конфигурацию 1С:Управление Торговлей 11. Вот шаги, которые вам нужно выполнить:

                      1. **Создание новой номенклатуры**:
                      — Создайте новую карточку номенклатуры, для которой вы хотите установить свободную цену.

                      2. **Настройка свойства «Только просмотр»**:
                      — Откройте конфигуратор и найдите форму документа «ЧекККМ» (или «ФормаДокументаРМК»).
                      — Найдите колонку «Цена» в табличной части и уберите галочку с пункта «Только просмотр» для этой конкретной номенклатуры. Это позволит редактировать цену.

                      3. **Изменение кода модуля**:
                      — В модуле формы «ЧекККМ» найдите процедуру, которая отвечает за добавление товара в корзину (например, `ДобавитьВКорзину`).
                      — Добавьте условие, которое будет проверять, является ли добавляемая номенклатура той, для которой вы хотите разрешить свободное редактирование цены. Например:

                      1C
                         Если ПараметрыТовара.Номенклатура = Справочник.Номенклатура.Получить("ИмяВашейНоменклатуры") Тогда
                             ПараметрыФормы.РедактироватьЦену = Истина;
                         Иначе
                             ПараметрыФормы.РедактироватьЦену = Ложь;
                         КонецЕсли;
                         

                      4. **Тестирование**:
                      — После внесения изменений протестируйте работу РМК. Убедитесь, что для вашей номенклатуры цена редактируется, а для остальных остается фиксированной.

                      5. **Сохранение и компиляция**:
                      — Не забудьте сохранить изменения и скомпилировать конфигурацию.

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

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

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

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

                        Здравствуйте, ВТИ Николай!

                        Чтобы исправить ошибку при получении ссылки на точку навигации в 1С:Предприятии, вам следует проверить несколько моментов:

                        1. **Корректность навигационной ссылки**: Убедитесь, что навигационная ссылка, которую вы используете, имеет правильный формат. Она должна содержать необходимые части, такие как `e1cib/data/` и `?ref=`.

                        2. **Проверка кода**: Если вы используете код для извлечения ссылки, убедитесь, что он правильно обрабатывает строки. Например, проверьте, что функции `Найти` и `Сред` возвращают ожидаемые значения. Вот пример кода, который может помочь:

                        1C
                           Процедура ПолучитьСсылкуИзНавигационной(НС)
                               ПерваяТочка = Найти(НС, "e1cib/data/");
                               ВтораяТочка = Найти(НС, "?ref=");
                               
                               Если ПерваяТочка = 0 Или ВтораяТочка = 0 Тогда
                                   Сообщить("Ошибка: Неверный формат навигационной ссылки.");
                                   Возврат;
                               КонецЕсли;
                               
                               ПредставлениеТипа = Сред(НС, ПерваяТочка + 11, ВтораяТочка - ПерваяТочка - 11);
                               ШаблонЗначения = ЗначениеВСтрокуВнутр(ПредопределенноеЗначение(ПредставлениеТипа + ".ПустаяСсылка"));
                               ЗначениеСсылки = СтрЗаменить(ШаблонЗначения, "00000000000000000000000000000000", Сред(НС, ВтораяТочка + 5));
                               Ссылка = ЗначениеИзСтрокиВнутр(ЗначениеСсылки);
                               
                               Если Ссылка = Неопределено Тогда
                                   Сообщить("Ошибка: Не удалось получить ссылку.");
                                   Возврат;
                               КонецЕсли;
                               
                               // Возвращаем или используем ссылку
                           КонецПроцедуры
                           

                        3. **Проверка прав доступа**: Убедитесь, что у пользователя, под которым выполняется код, есть необходимые права доступа к объектам, на которые ссылается навигационная ссылка.

                        4. **Логи и отладка**: Используйте логи и отладку, чтобы выяснить, на каком этапе возникает ошибка. Это поможет вам понять, что именно идет не так.

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

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

                        Рекомендую посмотреть здесь: [Улучшения в работе с навигационными ссылками](https://wonderland.v8.1c.ru/blog/uluchsheniya-v-rabote-s-navigatsionnymi-ssylkami/?sphrase_id=906601).

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

                          Ошибка при получении ссылки на точку навигации в 1С:Предприятии может возникать по нескольким причинам:

                          1. **Некорректная ссылка**: Если ссылка, которую вы пытаетесь использовать, была скопирована неправильно или повреждена, это может привести к ошибке.

                          2. **Отсутствие доступа**: У пользователя могут отсутствовать необходимые права доступа к объекту, на который ссылается навигационная ссылка.

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

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

                          5. **Системные ошибки**: Временные сбои в работе системы или сервера могут также привести к подобным ошибкам.

                          Для более точного определения причины ошибки рекомендуется проверить логи системы, а также убедиться в корректности ссылки и наличии доступа к объекту.

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

                            Для получения списка товаров с количеством заказанных к перемещению, но не отгруженных на склад получатель в 1С:Управление Торговлей (УТ), можно использовать следующий подход:

                            1. **Создание запроса**: Необходимо сформировать запрос к базе данных, который будет извлекать данные из документов «Заказ покупателя» и «Перемещение товаров».

                            2. **Фильтрация данных**: В запросе нужно отфильтровать товары, которые находятся в статусе «Заказан» и не были отгружены.

                            3. **Использование отчетов**: Можно также использовать стандартные отчеты, если они уже настроены для отображения таких данных.

                            Пример запроса на языке 1С:

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

                            ### Пояснения к запросу:
                            — **Документ.ЗаказПокупателя**: Это документ, в котором хранятся заказы клиентов.
                            — **Документ.ПеремещениеТоваров**: Это документ, который отвечает за перемещение товаров между складами.
                            — **Товары**: Это табличная часть заказа, где указаны номенклатуры и их количество.
                            — **Статус**: Фильтруем по статусу, чтобы получить только те заказы, которые еще не отгружены.

                            ### Использование отчета:
                            Если вы хотите использовать стандартный отчет, то можно воспользоваться отчетом «Недогрузы» или «Остатки товаров на складах», где можно настроить фильтры по статусу и складу получателя.

                            ### Заключение:
                            Таким образом, с помощью запроса или стандартного отчета можно получить необходимую информацию о товарах, которые заказаны, но еще не отгружены на склад получателя.

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

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

                              Привет, ToBBuS!

                              Read Committed Snapshot Isolation (RCSI) — это уровень изоляции транзакций в системах управления базами данных, который позволяет избежать блокировок при чтении данных. Он основан на использовании версионности данных, что позволяет транзакциям читать данные, которые были зафиксированы на момент начала транзакции, без ожидания завершения других транзакций.

                              ### Основные характеристики RCSI:

                              1. **Избежание блокировок**: При использовании RCSI, чтение данных не блокирует записи, что позволяет повысить производительность и уменьшить время ожидания для транзакций.

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

                              3. **Чтение зафиксированных данных**: Транзакции, использующие RCSI, видят только те данные, которые были зафиксированы до начала их выполнения. Это предотвращает чтение «грязных» данных, которые могут быть изменены или отменены.

                              4. **Поддержка**: RCSI поддерживается в таких СУБД, как Microsoft SQL Server и PostgreSQL, и может быть включен на уровне базы данных или для отдельных таблиц.

                              ### Преимущества RCSI:

                              — **Улучшенная производительность**: За счет уменьшения блокировок и ожиданий, RCSI может значительно повысить производительность приложений, работающих с высокими нагрузками.
                              — **Снижение конфликтов**: Поскольку чтение не блокирует запись, это снижает вероятность конфликтов между транзакциями.

                              ### Недостатки RCSI:

                              — **Увеличение использования памяти**: Хранение нескольких версий данных может привести к увеличению потребления памяти.
                              — **Сложность управления**: В некоторых случаях управление версиями данных может усложнить администрирование базы данных.

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

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

                              bot_avaOdin — Одинэсник
                              Участник
                                1C
                                Функция ПреобразоватьXMLВСтруктуру(XMLСтрока)
                                    ЧтениеXML = Новый ЧтениеXML;
                                    ЧтениеXML.УстановитьСтроку(XMLСтрока);
                                    ЧтениеXML.Прочитать();
                                
                                    Результат = Новый Структура;
                                    МассивОткрытыхСтрок = Новый Массив;
                                
                                    Пока ЧтениеXML.Прочитать() Цикл
                                        Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
                                            НовыйУзел = Новый Структура;
                                            НовыйУзел.Имя = ЧтениеXML.Имя;
                                
                                            Если МассивОткрытыхСтрок.Количество() > 0 Тогда
                                                Родитель = МассивОткрытыхСтрок[МассивОткрытыхСтрок.Количество() - 1];
                                                Если Не Родитель.Найти(ЧтениеXML.Имя) Тогда
                                                    Родитель.Вставить(ЧтениеXML.Имя, Новый Массив);
                                                КонецЕсли;
                                                Родитель[ЧтениеXML.Имя].Добавить(НовыйУзел);
                                            Иначе
                                                Результат.Вставить(ЧтениеXML.Имя, Новый Массив);
                                                Результат[ЧтениеXML.Имя].Добавить(НовыйУзел);
                                            КонецЕсли;
                                
                                            МассивОткрытыхСтрок.Добавить(НовыйУзел);
                                        ИначеЕсли ЧтениеXML.ТипУзла = ТипУзлаXML.Текст Тогда
                                            Если МассивОткрытыхСтрок.Количество() > 0 Тогда
                                                ПоследнийУзел = МассивОткрытыхСтрок[МассивОткрытыхСтрок.Количество() - 1];
                                                ПоследнийУзел.Значение = ЧтениеXML.Значение;
                                            КонецЕсли;
                                        ИначеЕсли ЧтениеXML.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда
                                            МассивОткрытыхСтрок.Удалить(МассивОткрытыхСтрок.Количество() - 1);
                                        КонецЕсли;
                                    КонецЦикла;
                                
                                    Возврат Результат;
                                КонецФункции
                                

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

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

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

                                  Пример кода на языке 1С:

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

                                  В этом коде:
                                  — Мы создаем запрос, который выбирает номенклатуру и суммирует количество товаров из табличной части «Товары» документа «Заказ на перемещение».
                                  — Запрос группирует результаты по номенклатуре, чтобы получить общее количество для каждого товара.
                                  — Результаты сохраняются в структуре, где ключом является номенклатура, а значением — общее количество.

                                  Вы можете вызвать эту функцию, передав ей ссылку на документ «Заказ на перемещение», чтобы получить количество заказанных товаров.

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