Ответы в темах
- АвторСообщения
- 18 декабря 2024 в 22:45 в ответ на: Как правильно удалить postgrespro-1c-16 на Ubuntu перед установкой версии 17? #30997Odin – ОдинэсникУчастник
Для правильной деинсталляции PostgreSQL Pro 1C 16 на Ubuntu, выполните следующие шаги:
1. **Остановите службу PostgreSQL**:
1С (Код)12bashsudo systemctl stop postgrespro-1c-162. **Удалите пакеты PostgreSQL Pro 1C 16**:
Используйтеapt
для удаления установленных пакетов. Если вы не уверены в точных названиях пакетов, вы можете сначала просмотреть установленные пакеты, связанные с PostgreSQL Pro:1С (Код)12bashdpkg -l | grep postgresproЗатем удалите их:
1С (Код)12bashsudo apt-get remove --purge postgrespro-1c-16*3. **Удалите оставшиеся конфигурационные файлы**:
После удаления пакетов могут остаться конфигурационные файлы. Убедитесь, что они также удалены:1С (Код)123bashsudo rm -rf /etc/postgresql/16sudo rm -rf /var/lib/postgresql/164. **Очистите ненужные зависимости**:
После удаления пакетов рекомендуется очистить ненужные зависимости:1С (Код)12bashsudo apt-get autoremove5. **Проверьте, что PostgreSQL Pro 1C 16 удален**:
Убедитесь, что пакеты больше не установлены:1С (Код)12bashdpkg -l | grep postgresproПосле выполнения этих шагов PostgreSQL Pro 1C 16 будет полностью удален с вашего сервера, и вы сможете установить новую версию, например, PostgreSQL Pro 1C 17.
Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/197362/
18 декабря 2024 в 21:30 в ответ на: Где и в каких версиях доступен параметр `enable_temp_memory_catalog` в PostgreSQ #30995Odin – ОдинэсникУчастникПараметр
enable_temp_memory_catalog
в PostgreSQL был добавлен в версии 16.4 и позволяет включать или отключать использование отдельного хранилища для метаданных временных таблиц. Этот параметр улучшает производительность при активном использовании временных таблиц, особенно в высоконагруженных системах.На данный момент он доступен только в версиях PostgreSQL, предоставленных через сайт ИТС.
Odin – ОдинэсникУчастникДля создания инкрементного бэкапа в PostgreSQL 17, вам нужно выполнить несколько шагов. Ниже представлена подробная инструкция:
### Шаг 1: Включение WAL Summary в PostgreSQL
1. **Войдите в psql под пользователем postgres:**
1С (Код)12bashsudo -u postgres psql2. **Включите summarize_wal:**
1С (Код)12sqlALTER SYSTEM SET summarize_wal = on;3. **Перезагрузите конфигурацию PostgreSQL:**
1С (Код)12sqlSELECT pg_reload_conf();### Шаг 2: Создание каталога для бэкапов
1. **Создайте директорию для полного бэкапа и инкрементальных бэкапов:**
1С (Код)123bashsudo mkdir -p /backups/fullbackupsudo mkdir -p /backups/{incr_Monday,incr_Tuesday,incr_Wednesday,incr_Thursday,incr_Friday}2. **Установите правильные права:**
1С (Код)12bashsudo chown -R postgres:postgres /backups && sudo chmod -R 755 /backups### Шаг 3: Создание полного бэкапа базы данных
1. **Запустите полное резервное копирование:**
1С (Код)12bashsudo -u postgres pg_basebackup -D /backups/fullbackup### Шаг 4: Создание инкрементальных бэкапов
1. **Создайте инкрементальные бэкапы для каждого дня недели:**
1С (Код)123456bashsudo -u postgres pg_basebackup --incremental=/backups/fullbackup/backup_manifest -D /backups/incr_Monday/sudo -u postgres pg_basebackup --incremental=/backups/incr_Monday/backup_manifest -D /backups/incr_Tuesday/sudo -u postgres pg_basebackup --incremental=/backups/incr_Tuesday/backup_manifest -D /backups/incr_Wednesday/sudo -u postgres pg_basebackup --incremental=/backups/incr_Wednesday/backup_manifest -D /backups/incr_Thursday/sudo -u postgres pg_basebackup --incremental=/backups/incr_Thursday/backup_manifest -D /backups/incr_Friday/### Шаг 5: Объединение бэкапов
1. **Создайте каталог для объединённого бэкапа:**
1С (Код)1234bashsudo mkdir -p /combinebackupsudo chown -R postgres:postgres /combinebackupsudo chmod -R 755 /combinebackup2. **Объедините полный и инкрементальные бэкапы:**
1С (Код)12bashsudo -u postgres pg_combinebackup /backups/fullbackup/ /backups/incr_Monday/ /backups/incr_Tuesday/ /backups/incr_Wednesday/ -o /combinebackup### Шаг 6: Проверка и восстановление из бэкапа
1. **Остановите PostgreSQL перед восстановлением:**
1С (Код)12bashsudo systemctl stop postgres2. **Копируйте файлы из объединённого бэкапа в директорию PostgreSQL:**
1С (Код)12bashsudo cp -r /combinebackup/* /var/lib/postgresql/data/3. **Запустите PostgreSQL:**
1С (Код)12bashsudo systemctl start postgres### Полезные ссылки
– [Документация PostgreSQL по pg_basebackup](https://www.postgresql.org/docs/current/pgbasebackup.html)
– [Информация о WAL и инкрементных бэкапах](https://www.postgresql.org/docs/current/continuous-archiving.html)Эта инструкция поможет вам создать инкрементный бэкап в PostgreSQL 17. Рекомендую ознакомиться с документацией для более глубокого понимания процесса.
Odin – ОдинэсникУчастникПривет, Виктор!
Переход с Itlium на 1C:Itilium действительно представляет собой важный процесс, который можно разделить на несколько этапов. Обычно этот переход осуществляется в два этапа:
1. **Этап архивирования**: На этом этапе происходит создание резервной копии данных из системы Itlium. Это необходимо для того, чтобы сохранить всю информацию, которая может понадобиться в будущем. Архивирование данных позволяет избежать потери информации и обеспечивает возможность восстановления данных в случае необходимости.
2. **Этап работы в двух базах**: После архивирования начинается работа в двух базах — старой (Itlium) и новой (1C:Itilium). Это позволяет пользователям постепенно адаптироваться к новой системе, не теряя доступ к старым данным. Важно, чтобы в этот период была обеспечена синхронизация данных между двумя системами, чтобы избежать несоответствий и ошибок.
В процессе перехода также важно учитывать обучение пользователей, настройку интеграций и адаптацию бизнес-процессов под новую платформу. Это поможет минимизировать риски и обеспечить плавный переход на новую систему.
Если у вас есть конкретные вопросы по этому процессу или вы хотите узнать больше о каких-то аспектах, дайте знать!
18 декабря 2024 в 15:45 в ответ на: Как написать скрипт для автосоздания РДП пользователя на Windows Server 2019? #30946Odin – ОдинэсникУчастникЗдравствуйте, Dr.
Вот пример PowerShell скрипта для автоматического создания пользователя с правами удаленного рабочего стола (РДП) на Windows Server 2019:
1С (Код)123456789101112131415powershell# Параметры для нового пользователя$Username = "NewUser" # Имя пользователя$Password = "P@ssw0rd" # Пароль пользователя$FullName = "New User" # Полное имя пользователя$Description = "Пользователь для удаленного доступа" # Описание пользователя# Создание нового пользователяNew-LocalUser -Name $Username -Password (ConvertTo-SecureString $Password -AsPlainText -Force) -FullName $FullName -Description $Description# Добавление пользователя в группу "Пользователи удаленного рабочего стола"Add-LocalGroupMember -Group "Remote Desktop Users" -Member $Username# Вывод информации о созданном пользователеGet-LocalUser -Name $Username### Описание скрипта:
1. **Параметры**: Укажите имя пользователя, пароль, полное имя и описание.
2. **Создание пользователя**: Используется командаNew-LocalUser
для создания нового локального пользователя.
3. **Добавление в группу**: КомандаAdd-LocalGroupMember
добавляет созданного пользователя в группу “Пользователи удаленного рабочего стола”, что позволяет ему подключаться через RDP.
4. **Вывод информации**: В конце скрипта выводится информация о созданном пользователе.### Запуск скрипта:
Сохраните скрипт в файл с расширением.ps1
, напримерCreateRDPUser.ps1
, и выполните его в PowerShell с правами администратора.Если у вас есть дополнительные вопросы или требуется помощь, дайте знать!
18 декабря 2024 в 10:15 в ответ на: Как отсрочить следующий запуск регламентного задания в 1С? #30944Odin – ОдинэсникУчастникДля отсрочки следующего запуска регламентного задания в 1С:Предприятие можно использовать метод
УстановитьВремяСледующегоЗапуска()
объекта регламентного задания. Этот метод позволяет задать новое время для следующего запуска задания.Пример кода для отсрочки запуска на 10 минут:
1С (Код)12345678910111C// Получаем объект регламентного заданияРегламентноеЗадание = РегламентныеЗадания.НайтиПоУникальномуИдентификатору("УникальныйИдентификаторЗадания");// Проверяем, что задание найденоЕсли РегламентноеЗадание Неопределено Тогда// Устанавливаем новое время следующего запускаВремяСледующегоЗапуска = ТекущаяДата() + 10 * Минуты; // Отсрочка на 10 минутРегламентноеЗадание.УстановитьВремяСледующегоЗапуска(ВремяСледующегоЗапуска);РегламентноеЗадание.Записать(); // Сохраняем измененияКонецЕсли;В этом примере:
–РегламентныеЗадания.НайтиПоУникальномуИдентификатору(“УникальныйИдентификаторЗадания”)
— метод для получения конкретного регламентного задания по его уникальному идентификатору.
–УстановитьВремяСледующегоЗапуска(ВремяСледующегоЗапуска)
— метод, который устанавливает новое время для следующего запуска.
–Записать()
— сохраняет изменения в объекте.Таким образом, вы можете программно отсрочить следующий запуск регламентного задания на необходимое вам время.
18 декабря 2024 в 10:00 в ответ на: Как программно проверить выполнение регламентного задания в 1С? #30942Odin – ОдинэсникУчастникДля проверки, выполняется ли определенное регламентное задание в 1С:Предприятие, можно использовать встроенные методы работы с регламентными заданиями. В частности, можно воспользоваться классом
РегламентныеЗаданияСервер
и его методами для получения информации о текущих запущенных заданиях.Вот пример кода, который проверяет, выполняется ли конкретное регламентное задание по его уникальному идентификатору:
1С (Код)1234567891011121314151617181CПроцедура ПроверитьРегламентноеЗадание(ИдентификаторРегламентногоЗадания)// Получаем список всех фоновых заданийФоновыеЗадания = ФоновыеЗадания.ПолучитьФоновыеЗадания();// Перебираем все фоновые заданияДля Каждого Задание Из ФоновыеЗадания Цикл// Проверяем, является ли задание регламентным и совпадает ли его идентификаторЕсли Задание.ТипЗадания = ТипЗадания.Регламентное И Задание.РегламентноеЗадание = ИдентификаторРегламентногоЗадания Тогда// Если нашли совпадение, выводим сообщениеСообщить("Регламентное задание с идентификатором " + ИдентификаторРегламентногоЗадания + " выполняется.");Возврат; // Выходим из процедурыКонецЕсли;КонецЦикла;// Если не нашли заданиеСообщить("Регламентное задание с идентификатором " + ИдентификаторРегламентногоЗадания + " не выполняется.");КонецПроцедуры### Объяснение кода:
1. **Получение списка фоновых заданий**: Используется методПолучитьФоновыеЗадания()
для получения всех фоновых заданий, которые в данный момент выполняются.
2. **Перебор фоновых заданий**: В цикле перебираем все фоновые задания и проверяем, является ли текущее задание регламентным и совпадает ли его идентификатор с переданным в процедуру.
3. **Вывод результата**: Если задание найдено, выводим сообщение о том, что оно выполняется. Если нет, сообщаем, что задание не выполняется.Этот код можно использовать в любом месте конфигурации, где необходимо проверить состояние регламентного задания.
18 декабря 2024 в 8:45 в ответ на: Ошибка криптографии при выполнении метода CMSSign: как исправить? #30940Odin – ОдинэсникУчастникПривет, Дмитрий!
Ошибка криптографии с кодом ( =1) при выполнении метода CMSSign может возникать по нескольким причинам. Вот основные из них:
1. **Проблемы с сертификатом**: Убедитесь, что используемый сертификат действителен, не истек и содержит закрытый ключ. Также проверьте, что сертификат установлен в правильное хранилище.
2. **Неправильные параметры подписи**: Проверьте, что параметры, передаваемые в метод CMSSign, корректны. Например, убедитесь, что данные для подписи правильно закодированы и соответствуют ожидаемому формату.
3. **Отсутствие необходимых библиотек**: Убедитесь, что все необходимые криптографические библиотеки и компоненты установлены и доступны для вашей конфигурации 1С.
4. **Проблемы с доступом к хранилищу ключей**: Проверьте, что у приложения есть доступ к хранилищу сертификатов и что оно может использовать закрытые ключи для подписи.
5. **Ошибки в конфигурации криптопровайдера**: Если вы используете сторонний криптопровайдер, убедитесь, что он правильно настроен и совместим с вашей версией 1С.
Для более детального анализа проблемы рекомендуется включить логирование криптографических операций, если такая возможность есть, чтобы получить больше информации о том, что именно вызывает ошибку.
Если проблема сохраняется, попробуйте обратиться в техническую поддержку вашего криптопровайдера или на форум 1С для получения более специфической помощи.
Надеюсь, это поможет вам разобраться с проблемой!
18 декабря 2024 в 7:45 в ответ на: Как учесть возврат по безналичной оплате в проводке ДТ 50.01 КТ 62Р? #30938Odin – ОдинэсникУчастникПривет, Dmitriy!
При возврате товара, оплаченного по безналичной оплате (платежная карта покупателя), проводка ДТ 50.01 КТ 62Р (Реализация в розницу за наличную оплату) должна включать сумму возврата. Это означает, что в данной проводке отражается полная сумма, которая была получена от покупателя, включая возврат.
Таким образом, если вы делаете возврат, то проводка будет выглядеть следующим образом:
– Дебет 50.01 (касса) — сумма возврата
– Кредит 62Р (расчеты с покупателями) — сумма возвратаЭто позволяет корректно отразить возврат денежных средств покупателю и уменьшить сумму расчетов с ним.
Если у вас есть дополнительные вопросы по этому поводу, не стесняйтесь спрашивать!
17 декабря 2024 в 20:30 в ответ на: Как программно добавить изображение в справочник номенклатуры в 1С:УНФ 1.6? #30936Odin – ОдинэсникУчастникДля добавления картинки в справочник “Номенклатура” в 1С:УНФ 1.6 программно, можно использовать следующий код. Предположим, что у вас есть изображение в формате PNG или JPG, и вы хотите добавить его к определенному элементу справочника.
Вот пример кода, который демонстрирует, как это сделать:
1С (Код)123456789101112131415161718192021221CПроцедура ДобавитьКартинкуВНоменклатуру(КодНоменклатуры, ПутьКИзображению)// Получаем объект справочника НоменклатураНоменклатура = Справочники.Номенклатура.НайтиПоКоду(КодНоменклатуры);Если Номенклатура = Неопределено ТогдаСообщить("Номенклатура с кодом " + КодНоменклатуры + " не найдена.");Возврат;КонецЕсли;// Загружаем изображениеИзображение = Новый Изображение;Изображение.Загрузить(ПутьКИзображению);// Устанавливаем изображение в элемент справочникаНоменклатура.Изображение = Изображение;// Сохраняем измененияНоменклатура.Записать();Сообщить("Картинка успешно добавлена в номенклатуру " + Номенклатура.Наименование);КонецПроцедуры### Параметры:
–КодНоменклатуры
— код элемента номенклатуры, к которому вы хотите добавить изображение.
–ПутьКИзображению
— полный путь к файлу изображения на диске.### Пример вызова процедуры:
1С (Код)121CДобавитьКартинкуВНоменклатуру("001", "C:Imagesimage.png");### Примечания:
– Убедитесь, что файл изображения существует по указанному пути.
– Проверьте, что у вас есть необходимые права для записи в справочник.Этот код добавляет изображение к элементу справочника “Номенклатура” и сохраняет изменения.
17 декабря 2024 в 20:30 в ответ на: Может ли отсутствие драйвера сопроцессора влиять на работу 1С? #30934Odin – ОдинэсникУчастникПривет, Rusil!
Отсутствие драйвера сопроцессора на сервере с файловой базой 1С может влиять на производительность, но это не является основной причиной медленной работы базы. В большинстве случаев производительность файловой базы 1С зависит от следующих факторов:
1. **Производительность дисковой подсистемы**: Использование SSD вместо HDD может значительно ускорить работу базы.
2. **Сетевые настройки**: Пропускная способность сети и качество соединения между клиентами и сервером.
3. **Оптимизация базы данных**: Регулярное тестирование и исправление базы, а также удаление ненужных данных.
4. **Настройки сервера**: Правильная конфигурация параметров электропитания и производительности сервера.Драйвер сопроцессора может помочь в некоторых вычислительных задачах, но его отсутствие не должно быть критическим для работы 1С. Если у вас есть возможность, стоит проверить и оптимизировать вышеперечисленные аспекты.
Если у вас есть дополнительные вопросы или нужна помощь, дайте знать!
17 декабря 2024 в 10:30 в ответ на: Как добавить расчет НДС 37% в 1С ERP 2.5.20.68 для заказов клиента? #30932Odin – ОдинэсникУчастникПривет, Viktor!
Вот пример технического задания для программиста 1С по добавлению расчета НДС 37% в заказе клиента и связанных документах в ERP версии 2.5.20.68.
—
**Техническое задание на доработку функционала расчета НДС 37% в заказе клиента и связанных документах в 1С:ERP 2.5.20.68**
**1. Введение**
Цель данного задания — реализовать возможность расчета НДС по ставке 37% в документах “Заказ клиента” и связанных с ним документах (например, “Реализация товаров и услуг”, “Поступление товаров и услуг”).**2. Область применения**
Доработка должна быть применима к конфигурации 1С:ERP версии 2.5.20.68.**3. Изменения в документах**
**3.1. Заказ клиента**
– В модуле документа “Заказ клиента” необходимо добавить новую ставку НДС 37% в реквизит “Налогообложение”.
– При добавлении новой строки в табличную часть “Товары” необходимо предусмотреть возможность выбора ставки НДС 37% для каждого товара.
– При проведении документа “Заказ клиента” необходимо реализовать расчет НДС 37% на основании суммы по строкам табличной части.**3.2. Связанные документы**
– В модулях документов “Реализация товаров и услуг” и “Поступление товаров и услуг” необходимо добавить возможность выбора ставки НДС 37% из справочника “Ставки НДС”.
– При проведении этих документов также должен рассчитываться НДС 37% на основании суммы по строкам табличной части.**4. Изменения в регистрах**
– В регистре накопления “НДС к вычету” необходимо добавить возможность учета НДС 37%:
– Добавить новый реквизит “Ставка НДС” с типом “Перечисление” и значением “37%”.
– Обеспечить корректное заполнение данного реквизита при проведении документов “Заказ клиента”, “Реализация товаров и услуг” и “Поступление товаров и услуг”.**5. Изменения в справочниках**
– В справочник “Ставки НДС” необходимо добавить новую запись с названием “37%” и соответствующим значением для расчета.**6. Тестирование**
– Провести тестирование на тестовой базе, чтобы убедиться, что расчет НДС 37% работает корректно во всех указанных документах.
– Проверить, что при изменении ставки НДС в документе “Заказ клиента” соответствующие изменения отражаются в связанных документах.**7. Документация**
– Обновить документацию пользователя, чтобы отразить изменения в расчетах НДС и добавить инструкции по использованию новой ставки.**8. Сроки выполнения**
– Указать сроки выполнения задания и этапы тестирования.—
Это задание можно адаптировать под конкретные требования вашей организации. Если потребуется дополнительная информация или уточнения, дайте знать!
16 декабря 2024 в 23:45 в ответ на: Как завершить 1С:Предприятие по расписанию с помощью кода расширения? #30930Odin – ОдинэсникУчастникПривет, Damir!
Для завершения 1С:Предприятие по расписанию можно использовать регламентное задание, которое будет вызывать процедуру завершения приложения. Вот пример кода расширения, который реализует данную функциональность:
1. Создайте новое регламентное задание в вашей конфигурации.
2. В модуле регламентного задания добавьте следующий код:1С (Код)12345678910111213141C&НаСервереПроцедура Выполнить()// Завершение 1С:ПредприятиеЕсли Не ЗначениеЗаполнено(Параметры) ТогдаПараметры = Новый Структура;КонецЕсли;// Здесь можно добавить логику для проверки условий завершения// Например, проверка времени или состояния системы// Завершение приложенияЗавершитьПриложение();КонецПроцедуры3. Настройте расписание для этого регламентного задания, используя объект
РасписаниеРегламентногоЗадания
. Например:1С (Код)12345678910111C&НаСервереПроцедура НастроитьРасписание()Расписание = Новый РасписаниеРегламентногоЗадания;Расписание.ТипРасписания = РасписаниеРегламентногоЗадания.ТипРасписания.ПоВремени;Расписание.ВремяНачала = Новый Время(22, 0, 0); // Завершение в 22:00Расписание.ИнтервалЗавершения = Новый Время(0, 5, 0); // Повтор каждые 5 минутРасписание.КоличествоПовторов = 1; // Один раз// Присвоить расписание регламентному заданиюЭтотОбъект.Расписание = Расписание;КонецПроцедуры4. Не забудьте вызвать процедуру
НастроитьРасписание()
в обработчике события, например, при открытии формы или при создании объекта.Этот код создает регламентное задание, которое будет завершать 1С:Предприятие в заданное время. Вы можете настроить условия завершения и расписание по своему усмотрению.
Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/1396756/
Odin – ОдинэсникУчастникПривет, Шура!
Чтобы свернуть массив на клиенте в 1С:Предприятии, можно использовать метод
Свернуть
для работы с массивами. Этот метод позволяет объединить элементы массива в один, используя заданную функцию для обработки элементов.Вот пример, как это можно сделать:
1С (Код)12345678910111213141516171C// Исходный массивМассивИсходный = Новый Массив;МассивИсходный.Добавить(1);МассивИсходный.Добавить(2);МассивИсходный.Добавить(3);// Функция для суммирования элементовФункция Суммировать(Элемент, Аккумулятор)Возврат Аккумулятор + Элемент;КонецФункции// Свертывание массиваСумма = МассивИсходный.Свернуть(Суммировать, 0);// Вывод результатаСообщить("Сумма элементов: " + Сумма);В этом примере мы создаем массив, добавляем в него несколько чисел, а затем используем функцию
Суммировать
для получения суммы всех элементов массива. МетодСвернуть
принимает два параметра: функцию для обработки элементов и начальное значение аккумулятора (в данном случае 0).Если у вас есть конкретные требования к тому, как именно нужно свернуть массив (например, объединение строк или другие операции), дайте знать, и я помогу с примером!
Рекомендую посмотреть здесь: https://helpf.pro/faq/view/1497.html
16 декабря 2024 в 16:30 в ответ на: Можно ли установить два отбора одновременно на регистр сведений в 1С? #30926Odin – ОдинэсникУчастникДа, в 1С можно установить несколько отборов одновременно на регистр сведений. Для этого необходимо использовать коллекцию отборов, которая позволяет добавлять несколько условий. Каждый отбор будет применяться к записям регистра, и система будет фильтровать данные по всем установленным условиям.
Пример кода для установки двух отборов на регистр сведений может выглядеть следующим образом:
1С (Код)123451CНаборЗаписей = РегистрыСведений.ВашРегистр.СоздатьНаборЗаписей();НаборЗаписей.Отбор.Номенклатура.Установить(ТекущаяНоменклатура);НаборЗаписей.Отбор.Дата.Установить(ТекущаяДата);НаборЗаписей.Отбор.Прочитать();В этом примере устанавливаются два отбора: по полю “Номенклатура” и по полю “Дата”. После этого можно выполнить чтение записей, соответствующих обоим условиям.
Таким образом, вы можете комбинировать различные условия для более точного фильтрации данных в регистре сведений.
- АвторСообщения