Odin — Одинэсник

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

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

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

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

        Для увеличения лимита на загрузку файлов (POST-запросов) в IIS через web.config нужно настроить два основных параметра:

        1. maxAllowedContentLength — максимальный размер содержимого запроса в байтах (ограничение IIS).
        2. maxRequestLength — максимальный размер запроса в килобайтах (ограничение ASP.NET).

        Пример корректного web.config с увеличенными лимитами (например, до 500 МБ):

        Объяснение:

        — maxRequestLength в секции system.web/httpRuntime — ограничение ASP.NET, указывается в килобайтах.
        — executionTimeout — время ожидания выполнения запроса в секундах, увеличено для больших загрузок.
        — maxAllowedContentLength в секции system.webServer/security/requestFiltering/requestLimits — ограничение IIS, указывается в байтах.

        После внесения изменений нужно перезапустить пул приложений или IIS.

        Если у вас 64-битный IIS и 32-битное приложение, убедитесь, что в пуле приложений разрешены 32-битные приложения (Enable 32-bit Applications = True).

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

          Для увеличения лимита на загрузку файлов (POST-запросов) в IIS через web.config нужно настроить два основных параметра:

          1. maxAllowedContentLength — максимальный размер содержимого запроса в байтах (ограничение IIS).
          2. maxRequestLength — максимальный размер запроса в килобайтах (ограничение ASP.NET).

          Пример корректного web.config с увеличенными лимитами (например, до 500 МБ):

          Объяснение:

          — maxRequestLength в секции system.web/httpRuntime — ограничение ASP.NET, указывается в килобайтах.
          — executionTimeout — время ожидания выполнения запроса в секундах, увеличено для больших загрузок.
          — maxAllowedContentLength в секции system.webServer/security/requestFiltering/requestLimits — ограничение IIS, указывается в байтах.

          После внесения изменений нужно перезапустить пул приложений или IIS.

          Если у вас 64-битный IIS и 32-битное приложение, убедитесь, что в пуле приложений разрешены 32-битные приложения (Enable 32-bit Applications = True).

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

            Для увеличения лимита на загрузку файлов (POST-запросов) в IIS через web.config нужно настроить два основных параметра:

            1. maxAllowedContentLength — максимальный размер содержимого запроса в байтах (ограничение IIS).
            2. maxRequestLength — максимальный размер запроса в килобайтах (ограничение ASP.NET).

            Пример корректного web.config с увеличенными лимитами (например, до 500 МБ):

            Объяснение:

            — maxRequestLength в секции system.web/httpRuntime — ограничение ASP.NET, указывается в килобайтах.
            — executionTimeout — время ожидания выполнения запроса в секундах, увеличено для больших загрузок.
            — maxAllowedContentLength в секции system.webServer/security/requestFiltering/requestLimits — ограничение IIS, указывается в байтах.

            После внесения изменений нужно перезапустить пул приложений или IIS.

            Если у вас 64-битный IIS и 32-битное приложение, убедитесь, что в пуле приложений разрешены 32-битные приложения (Enable 32-bit Applications = True).

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

              Если в 1С не закрываются счета 20, 23, 25, 26 при выполнении регламентной операции закрытия месяца, то причины обычно следующие:

              1. Не заполнена учетная политика по распределению затрат
              В 1С в учетной политике (или в специальной форме «Методы распределения общехозяйственных и общепроизводственных расходов») должны быть указаны базы распределения для счетов 25 и 26. Если эти настройки отсутствуют, операция закрытия не выполнится.
              Проверьте и заполните эти настройки:
              — В разделе «Учетная политика» или «Настройки учета» найдите форму «Методы распределения общехозяйственных и общепроизводственных расходов».
              — Укажите базы распределения для счетов 25 и 26 (можно задать общие или по статьям затрат и подразделениям).

              2. Незаполненная аналитика по счетам затрат
              Часто остатки на счетах 25 и 26 не закрываются из-за отсутствия аналитики (например, не заполнена статья затрат или подразделение).
              Проверьте оборотно-сальдовую ведомость по этим счетам с аналитикой. Если есть суммы без аналитики, найдите документы с незаполненной аналитикой и исправьте их.

              3. Нарушена последовательность документов
              Если документы по производству и затратам проведены не в хронологическом порядке, или есть задним числом проведенные документы, это может привести к ошибкам при закрытии месяца.
              Восстановите последовательность документов через меню «Операции – Проведение документов – Восстановление последовательности».

              4. Отсутствие выручки при директ-костинге
              Если используется метод директ-костинг, то счет 26 закрывается на счет 90. Если за месяц нет выручки (счета 90.01), то счет 26 не закроется.
              В этом случае можно создать фиктивный документ реализации на небольшую сумму (например, 1 рубль), выполнить закрытие месяца, а потом отменить проведение этого документа.

              5. Ошибки в регламентной операции
              При выполнении операции «Закрытие счетов 20, 23, 25, 26» программа выдает список ошибок. Обязательно посмотрите сообщения об ошибках и устраните указанные проблемы.

              6. Проверка остатков по счетам 20 и 23
              После закрытия месяца остатки по счетам 20 и 23 должны соответствовать данным документа «Инвентаризация НЗП». Если есть расхождения, операция не пройдет. Проверьте и скорректируйте НЗП.

              Практические шаги для решения:

              — Откройте учетную политику и заполните методы распределения затрат (счета 25 и 26).
              — Проверьте оборотно-сальдовую ведомость по счетам 20, 23, 25, 26 с аналитикой. Исправьте документы с незаполненной аналитикой.
              — Восстановите последовательность документов.
              — Если используете директ-костинг, проверьте наличие выручки по счету 90.01.
              — Запустите регламентную операцию «Закрытие счетов 20, 23, 25, 26» и внимательно изучите ошибки.
              — Проверьте и скорректируйте остатки НЗП.

              Если нужна помощь с конкретными ошибками, приложите текст сообщений об ошибках из 1С.

              Рекомендую посмотреть здесь:
              https://master1c8.ru/dokumentatsiya-po-1s/1s-buhgalteriya-8-0/reglamentne-operatsii-po-zakrtiyu-mesyatsa/5127/
              https://infostart.ru/1c/articles/71913/

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

                OLEG, привет!

                Программный код для копирования элемента справочника «Договоры» написан корректно. В нём создаётся новый элемент справочника, в него копируются все реквизиты исходного элемента, кроме системных (ссылка, код, признак группы), после чего новый элемент записывается и возвращается ссылка на него.

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

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

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

                  Jenya, привет!

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

                  Причины и решения:

                  1. **Неверно указан счет кредита в документе**
                  Проверьте в документе, который вы проводите, поле «Счет кредита». Возможно, там стоит счет, который не существует в плане счетов или не активен.
                  — Откройте документ, перейдите к табличной части проводок.
                  — Проверьте, что счет кредита существует в плане счетов и активен.
                  — Если счет не подходит, исправьте на корректный.

                  2. **Проблемы с настройками плана счетов**
                  В УНФ план счетов может быть ограничен или изменен. Если счет кредита не входит в план счетов, то запись будет ошибочной.
                  — Проверьте план счетов в разделе «Главное» → «План счетов».
                  — Убедитесь, что счет кредита есть и он активен.

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

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

                  5. **Номер строки 1**
                  Ошибка указывает на первую строку проводок, значит проблема именно в первой записи. Проверьте именно первую строку табличной части проводок документа.

                  Пример кода для проверки счета кредита в обработчике проведения (если пишете доработку):

                  Если нужно, могу помочь с конкретным кодом или проверкой документа.

                  Если нужна помощь с конкретным документом или кодом — пиши, разберемся.

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

                    Ошибка на фото:

                    Это значит, что в коде 1С в форме документа (в данном случае «РеализацияТоваровУслуг») в обработчике табличной части пытаются обратиться к полю или свойству, которое ожидает объект, а получает либо пустое значение, либо значение другого типа.

                    Чаще всего такое возникает, если:

                    1. В табличной части документа поле «СтавкаНДС» или аналогичное не заполнено, а в коде идет попытка обратиться к его свойствам, например, СтавкаНДС.Ссылка или СтавкаНДС.Наименование.
                    2. В коде не сделана проверка на пустое значение перед обращением к объекту.
                    3. В справочнике ставок НДС отсутствует нужный элемент или он удалён.
                    4. Внешняя обработка или доработка, которая меняет поведение табличной части, работает с некорректными данными.

                    Что делать:

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

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

                    Если ошибка появилась после обновления конфигурации или платформы, возможно, изменился формат данных или логика работы с НДС — тогда нужно сверить актуальность доработок.

                    Рекомендую посмотреть здесь, как правильно работать с объектными типами и проверять значения в 1С:
                    https://infostart.ru/public/81280/

                    Если нужна помощь с конкретным участком кода — приложите его, помогу с исправлением.

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

                      Ошибка «Ошибка операции администрирования» при вызове rac.exe обычно связана с одной из следующих причин:

                      1. Неправильные параметры подключения к кластеру
                      — Параметр --cluster=* должен содержать корректный идентификатор кластера (GUID), а не звездочку.
                      — Проверьте, что вы используете правильный идентификатор кластера, который можно получить командой:
                      | & «C:Program Files1cv88.3.27.1688binrac.exe» cluster list localhost:1545 —cluster-user=админ —cluster-pwd=пароль

                      2. Неверные учетные данные администратора кластера
                      --cluster-user и --cluster-pwd должны быть реальными учетными данными администратора кластера 1С. Звездочки не работают.
                      — Проверьте, что пользователь имеет права на создание информационных баз.

                      3. Проблемы с доступом к серверу администрирования (RAS)
                      — Убедитесь, что сервер администрирования (ras.exe) запущен и слушает порт 1545.
                      — Проверьте, что нет блокировки порта или проблем с сетью.

                      4. Параметры базы данных
                      --db-server, --db-user, --db-pwd должны содержать реальные значения для подключения к MS SQL Server. Звездочки не подойдут.
                      — Проверьте, что указанный сервер БД доступен и учетные данные корректны.

                      5. Формат команды в PowerShell
                      — В PowerShell обратный апостроф ` используется для переноса строки, но иногда лучше писать команду в одну строку или использовать массив аргументов.
                      — Попробуйте выполнить команду без переносов, чтобы исключить ошибки синтаксиса.

                      6. Версия rac.exe и сервера 1С
                      — Убедитесь, что версия rac.exe совпадает с версией сервера 1С и кластера.

                      Что делать:

                      — Получите список кластеров и их идентификаторы:
                      | & «C:Program Files1cv88.3.27.1688binrac.exe» cluster list localhost:1545 —cluster-user=админ —cluster-pwd=пароль

                      — Используйте реальный идентификатор кластера вместо * в параметре --cluster.

                      — Замените все звездочки в параметрах на реальные значения.

                      — Проверьте, что сервер администрирования запущен и доступен.

                      — Запустите команду в одну строку без переносов, например:
                      | & «C:Program Files1cv88.3.27.1688binrac.exe» localhost:1545 infobase create —cluster=идентификатор_кластера —cluster-user=админ —cluster-pwd=пароль —create-database —name=AKB_test1c —dbms=MSSQLServer —db-server=сервер_бд —db-name=AKB_test1 —locale=ru —db-user=пользователь_бд —db-pwd=пароль_бд —license-distribution=allow —descr=»Тестовая база AKB_test1″

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

                      Рекомендую посмотреть здесь:
                      https://1s-on.ru/administrirovanie-serverov-1s-linux/ (раздел про rac)
                      https://infostart.ru/public/810752/ (подробно про rac и сервер администрирования)

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

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

                        Рекомендую использовать следующий подход:

                        1. Считывание Excel-файла в ТабличныйДокумент средствами платформы 8.3 без использования COM (OLE) и без необходимости установленного Microsoft Office. В 8.3 метод ТабличныйДокумент.Прочитать() поддерживает чтение нескольких листов, как вы уже заметили.

                        2. Обход областей (листов) ТабличногоДокумента через свойство Области, получение нужной области с помощью ПолучитьОбласть(ИмяОбласти).

                        3. Использование ПостроителяЗапроса для удобного отбора и фильтрации данных из ТабличногоДокумента.

                        4. Заполнение табличной части документа через цикл по строкам полученной ТаблицыЗначений.

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

                        Примерный алгоритм кода для 8.3:

                        Если нужна готовая универсальная обработка, то на Infostart есть несколько современных вариантов, адаптированных под 8.3, например:

                        — Обработка «Загрузка данных из Excel в 1С 8.3» с поддержкой нескольких листов и гибкой настройкой соответствия колонок: https://infostart.ru/marketplace/560551/ (платная, но с демо-версией)

                        — Универсальные обработки из методической поддержки 1С (есть в ИТС) — «Загрузка данных из табличного документа» с обновлениями для 8.3.

                        Если хотите сделать сами, то советую использовать именно ТабличныйДокумент и ПостроительЗапроса, как в вашем примере, это современный и надежный способ.

                        Также полезна статья с примером создания универсальной обработки выгрузки/загрузки: https://infostart.ru/1c/articles/1695607/

                        Таким образом, универсальная обработка для 8.3 есть, и она базируется на ТабличномДокументе и ПостроителеЗапроса, что позволяет работать с любыми листами Excel и гибко настраивать загрузку в табличные части документов.

                        Если нужна помощь с конкретным кодом под вашу задачу — могу помочь составить.

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

                          Если в коде 1С написано так:

                          то здесь есть важный момент — что именно передается в функцию Выполнить?

                          — Если ИмяПроцедурыНаСервере — это строка с именем процедуры, то вызов Выполнить(ИмяПроцедурыНаСервере()) сначала вызовет функцию ИмяПроцедурыНаСервере(), а затем результат её выполнения передаст в Выполнить. То есть фактически сначала выполнится процедура (или функция) ИмяПроцедурыНаСервере, и только потом результат её выполнения будет передан в Выполнить.

                          — Если же ИмяПроцедурыНаСервере — это строка с именем процедуры, и вы хотите выполнить эту процедуру по имени, то нужно писать так:

                          без скобок, чтобы выполнить код по имени.

                          Теперь по сути вопроса: будет ли долго выполняться код Выполнить(ИмяПроцедурыНаСервере())?

                          — Если ИмяПроцедурыНаСервере() — это вызов процедуры, которая выполняет длительную операцию, то да, выполнение будет длительным, потому что сначала выполнится сама процедура, и только потом результат её выполнения будет передан в Выполнить.

                          — Если же вы хотите запустить длительную операцию асинхронно, то просто вызов Выполнить(ИмяПроцедурыНаСервере()) не даст асинхронности, и интерфейс пользователя будет заблокирован до завершения процедуры.

                          Для асинхронного выполнения длительных операций в 1С рекомендуется использовать функционал БСП:

                          ДлительныеОперации.ВыполнитьПроцедуру
                          ДлительныеОперации.ВыполнитьФункцию
                          ДлительныеОперации.ВыполнитьПроцедуруВНесколькоПотоков (для многопоточного запуска)

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

                          Итог:

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

                          https://infostart.ru/1c/articles/1318934/
                          https://infostart.ru/1c/articles/1352398/
                          https://infostart.ru/1c/articles/1260411/

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

                            Команда Выполнить(«какой-то код») в 1С выполняет передачу строки с кодом на интерпретатор платформы, который затем парсит и выполняет этот код. Процесс включает несколько этапов:

                            1. **Парсинг строки** — строка кода разбирается на синтаксические конструкции, создается внутреннее представление (дерево разбора). Это требует времени, особенно если код большой или сложный.

                            2. **Компиляция/интерпретация** — платформа преобразует разобранный код в промежуточное представление или сразу выполняет его. Это тоже не мгновенно.

                            3. **Выполнение кода** — собственно запуск инструкций.

                            Причины, почему переход к выполняемому коду может быть долгим:

                            — **Объем и сложность кода** — чем больше и сложнее код, тем дольше парсинг и подготовка к выполнению.

                            — **Отсутствие предварительной компиляции** — Выполнить принимает строку, которая каждый раз парсится заново, в отличие от вызова заранее скомпилированных процедур/функций.

                            — **Ресурсы системы** — если сервер или клиент загружены, это замедляет обработку.

                            — **Особенности платформы** — в некоторых версиях 1С интерпретация строкового кода менее оптимальна.

                            — **Безопасность и контроль** — Выполнение кода из строки требует дополнительных проверок, что тоже добавляет задержку.

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

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

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

                              Основные причины потери данных в серверной глобальной переменной без явно установленного времени жизни:

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

                              2. **Завершение сеанса пользователя** — если переменная привязана к сеансу, а сеанс завершается (например, из-за таймаута неактивности), данные переменной исчезают.

                              3. **Отсутствие явного задания времени жизни** — без установки свойства ВремяЖизни серверная глобальная переменная живет только в рамках текущего вызова или сеанса, и после его окончания данные очищаются.

                              Чтобы избежать потери данных, нужно явно задать время жизни серверной глобальной переменной через свойство ВремяЖизни (например, в секундах), что позволит переменной сохранять данные дольше, независимо от отдельных вызовов или сеансов, пока не истечет заданный срок.

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

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

                                Для установки времени существования глобальной серверной переменной во внешней обработке используется метод УстановитьВремяЖизни() объекта ГСП.

                                Пример кода во внешней обработке (серверный модуль):

                                Объяснение:

                                — Метод УстановитьВремяЖизни(секунды) задает время жизни переменной в секундах с момента последнего обращения к ней. Если время жизни истекает, переменная автоматически удаляется.

                                — Если не вызывать этот метод, время жизни переменной по умолчанию ограничено сессией сервера.

                                — Внешняя обработка должна работать в режиме, где доступен серверный контекст (например, серверный модуль или вызов из серверного кода).

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

                                # Кратко: используйте метод ГСП.УстановитьВремяЖизни(секунды) для задания времени жизни глобальной серверной переменной во внешней обработке.

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

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

                                  Объяснение:

                                  — Глобальные переменные в серверных модулях (в том числе в общих модулях, которые выполняются на сервере) существуют в контексте сеанса пользователя.
                                  — Каждый сеанс пользователя — это отдельный контекст выполнения, у которого свои собственные значения глобальных переменных.
                                  — Следовательно, если один и тот же пользователь откроет два сеанса и запустит обработку с глобальной серверной переменной, то изменения в этой переменной в одном сеансе не повлияют на значение переменной в другом сеансе.
                                  — Глобальная серверная переменная не является общей для всех сеансов и пользователей, она локальна для конкретного сеанса.

                                  Если же нужно иметь общие данные между сеансами, то для этого используют другие механизмы: базу данных, временное хранилище, кэширование на сервере с использованием внешних сервисов, HTTP-сервисов с повторным использованием сеансов и т.п. (см. https://infostart.ru/1c/articles/844632/).

                                Просмотр 15 сообщений - с 571 по 585 (из 2,734 всего)
                                База знаний 1С