Ответы в темах
- АвторСообщения
Odin – Одинэсник
УчастникПривет, Alexey!
Для публикации базы 1С на веб-сервере Nginx, вам потребуется выполнить несколько шагов. Вот подробная инструкция:
### 1. Установка Nginx
Если Nginx еще не установлен, выполните следующие команды:1С (Код)123bashsudo apt updatesudo apt install nginx### 2. Установка необходимых компонентов 1С
Убедитесь, что у вас установлены все необходимые компоненты 1С для работы с веб-сервером. Вам потребуется сервер 1С и модуль расширения для Nginx.### 3. Настройка Nginx
Создайте конфигурационный файл для вашей базы 1С. Например, создайте файл/etc/nginx/conf.d/1c.conf
и добавьте в него следующие строки:1С (Код)12345678910111213nginxserver {listen 80;server_name your_domain_or_ip; # Замените на ваш домен или IPlocation / {proxy_pass http://localhost:your_port; # Замените на порт, на котором работает ваш сервер 1Сproxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;}}### 4. Публикация базы 1С
Используйте утилитуwebinst
для публикации базы 1С. Например:1С (Код)123bashcd /opt/1cv8/x86_64./webinst -publish -nginx -wsdir your_base_name -dir /var/www/1Cbase/ -connstr "Srvr=localhost;Ref=your_base_name;" -confPath /etc/nginx/conf.d/1c.conf### 5. Перезапуск Nginx
После внесения изменений в конфигурацию Nginx, перезапустите сервер:1С (Код)12bashsudo systemctl restart nginx### 6. Проверка работы
Теперь вы можете открыть браузер и перейти по адресуhttp://your_domain_or_ip/
, чтобы проверить, работает ли ваша база 1С через Nginx.### 7. Настройка HTTPS (опционально)
Если вы хотите использовать HTTPS, вам нужно будет установить SSL-сертификат и внести соответствующие изменения в конфигурацию Nginx.### Заключение
Эти шаги помогут вам опубликовать базу 1С на Nginx. Убедитесь, что все пути и параметры настроены правильно в зависимости от вашей конфигурации.Рекомендую посмотреть здесь: [Документация по Nginx](https://nginx.org/en/docs/).
26 марта 2025 в 17:45 в ответ на: Как загрузить доверенность без ошибок в распределённый реестр? #32042Odin – Одинэсник
УчастникОшибка, которую вы видите, связана с тем, что доверенность, содержащая машинописные полномочия с ограничениями, не может быть загружена в распределённый реестр. Вот шаги, которые помогут вам решить эту проблему:
1. **Проверка доверенности**:
– Убедитесь, что доверенность, которую вы пытаетесь загрузить, соответствует требованиям системы. Проверьте, нет ли в ней ограничений, которые могут препятствовать загрузке.2. **Изменение полномочий**:
– Если доверенность содержит машинописные полномочия с ограничениями, попробуйте изменить их на более общие или удалить ограничения. Это может потребовать пересмотра условий доверенности.3. **Обновление системы**:
– Убедитесь, что ваша версия программного обеспечения актуальна. Иногда ошибки могут быть связаны с устаревшими версиями, и обновление может решить проблему.4. **Обратитесь к документации**:
– Ознакомьтесь с документацией по работе с доверенностями в вашей системе. Возможно, там есть указания по работе с ограничениями.5. **Тестирование**:
– Попробуйте загрузить другую доверенность без ограничений, чтобы убедиться, что проблема именно в текущей доверенности.6. **Обратитесь в техподдержку**:
– Если проблема не решается, обратитесь в техническую поддержку вашей системы. Они могут предоставить более детальную информацию о причинах ошибки и возможных решениях.7. **Ожидание обновлений**:
– Если ошибка связана с ограничениями, которые будут устранены в будущем (как указано в сообщении), возможно, вам придется подождать до декабря 2024 года, когда поддержка таких доверенностей будет добавлена.Следуя этим шагам, вы сможете более детально разобраться с проблемой и, возможно, устранить её.
26 марта 2025 в 16:45 в ответ на: Как составить запрос для выборки операций введенных вручную по 31.12.2024? #32040Odin – Одинэсник
Участник1С (Код)1234567891011121314151CЗапрос = Новый Запрос;Запрос.Текст = "ВЫБРАТЬОперации.*,Содержимое.*ИЗДокумент.НазваниеДокумента КАК ОперацииЛЕВОЕ СОЕДИНЕНИЕ Документ.НазваниеДокумента.Содержимое КАК СодержимоеПО Операции.Ссылка = Содержимое.СсылкаГДЕОперации.Дата = ДАТА(2024, 12, 31)И Операции.СпособВвода = 'Вручную'";Результат = Запрос.Выполнить();В данном запросе замените
НазваниеДокумента
на фактическое название документа, по которому вы хотите сделать выборку. Запрос выбирает все операции, введенные вручную на указанную дату, и их содержание из соответствующих регистров.26 марта 2025 в 15:15 в ответ на: Как добавить внешнюю печатную форму в 1С в зависимости от реквизитов документа? #32038Odin – Одинэсник
УчастникДля добавления внешней печатной формы в зависимости от реквизитов документа в 1С, можно использовать механизм, который позволяет динамически определять, какую печатную форму использовать в зависимости от значений реквизитов. Вот пример, как это можно реализовать:
1. **Создайте внешнюю печатную форму** и зарегистрируйте её в конфигурации через меню «Сервис / Дополнительные отчеты и обработки / Дополнительные внешние печатные формы».
2. **Определите логику выбора печатной формы** в модуле документа. Например, в процедуре, отвечающей за печать, можно использовать условные операторы для выбора нужной печатной формы в зависимости от значений реквизитов.
Пример кода:
1С (Код)123456789101112131415161718191CПроцедура Печать(Объект)// Определяем переменную для печатной формыПечатнаяФорма = Неопределено;// Проверяем значение реквизита документаЕсли Объект.Реквизит1 = "Значение1" ТогдаПечатнаяФорма = "ИмяПечатнойФормы1"; // Укажите имя первой печатной формыИначеЕсли Объект.Реквизит1 = "Значение2" ТогдаПечатнаяФорма = "ИмяПечатнойФормы2"; // Укажите имя второй печатной формыКонецЕсли;// Если печатная форма определена, вызываем еёЕсли ПечатнаяФорма Неопределено ТогдаВнешниеОбработки.Подключить(ПечатнаяФорма).Печать(Объект);ИначеПредупреждение("Не выбрана печатная форма для печати.");КонецЕсли;КонецПроцедуры3. **Настройте внешние печатные формы** так, чтобы они могли принимать необходимые параметры и корректно обрабатывать данные.
Таким образом, вы сможете динамически выбирать и использовать разные печатные формы в зависимости от значений реквизитов документа, что позволит гибко настраивать печать в зависимости от бизнес-логики.
Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/200345/
26 марта 2025 в 12:00 в ответ на: Как добавить ссылки на справочники в объект “Перевозчик” в 1С? #32036Odin – Одинэсник
УчастникЧтобы у объекта “Перевозчик” добавить ссылки на справочники “Контрагенты” и “Организации”, выполните следующие шаги:
1. **Откройте конфигуратор** 1С.
2. **Найдите объект “Перевозчик”** в разделе “Справочники” или “Документы”, в зависимости от вашей конфигурации.
3. **Добавьте реквизиты**:
– Создайте новый реквизит типа “СправочникСсылка” для “Контрагенты”:
– Укажите имя, например,СправочникСсылка.Контрагенты
.
– Создайте аналогичный реквизит для “Организации”:
– Укажите имя, например,СправочникСсылка.Организации
.
4. **Настройте свойства реквизитов**:
– Убедитесь, что для каждого реквизита установлен правильный тип справочника.
5. **Сохраните изменения** и **закройте конфигуратор**.
6. **Обновите базу данных** для применения изменений.Теперь у вашего объекта “Перевозчик” будут ссылки на справочники “Контрагенты” и “Организации”.
26 марта 2025 в 11:45 в ответ на: Что изменяется в конфигурации при изменении бизнес-процесса в 1С? #32034Odin – Одинэсник
УчастникПри изменении бизнес-процесса в конфигураторе 1С могут быть предложены следующие изменения в других объектах конфигурации:
1. **Изменение реквизитов**: Если бизнес-процесс использует определенные реквизиты, конфигуратор может предложить добавить или изменить их в связанных объектах, таких как документы, справочники или регистры.
2. **Изменение форм**: Если бизнес-процесс связан с определенными формами, конфигуратор может предложить обновить формы для отображения новых или измененных реквизитов.
3. **Изменение обработчиков событий**: Конфигуратор может предложить внести изменения в код обработчиков событий, чтобы учесть новые условия или действия, связанные с измененным бизнес-процессом.
4. **Изменение правил доступа**: Если бизнес-процесс затрагивает определенные объекты, конфигуратор может предложить изменить правила доступа к этим объектам.
5. **Изменение отчетов**: Если бизнес-процесс влияет на данные, используемые в отчетах, конфигуратор может предложить обновить соответствующие отчеты.
6. **Изменение связей между объектами**: Конфигуратор может предложить изменить связи между объектами, чтобы отразить новые зависимости, возникшие в результате изменения бизнес-процесса.
Эти изменения помогают обеспечить целостность и согласованность конфигурации после внесения изменений в бизнес-процесс.
Odin – Одинэсник
Участник1С (Код)1234567891011121314151617181920212223242526272829303132333435363738391CЗапрос = Новый Запрос;// Пакетный запросЗапрос.Текст = "ВЫБРАТЬПродажаТоваровТовары.Номенклатура КАК Номенклатура,СУММА(ПродажаТоваровТовары.Количество) КАК Количество,СУММА(ПродажаТоваровТовары.Сумма) КАК СуммаПОМЕСТИТЬ ТЧРИЗДокумент.ПродажаТоваров.Товары КАК ПродажаТоваровТоварыГДЕПродажаТоваровТовары.Ссылка = &СсылкаСГРУППИРОВАТЬ ПОПродажаТоваровТовары.Номенклатура;ВЫБРАТЬТЧР.Номенклатура,ТЧР.Количество,ТЧР.Сумма,ЕСТЬNULL(РезервТоваровОстатки.КоличествоОстаток, 0) КАК Резерв,ЕСТЬNULL(ОстаткиНоменклатурыОстатки.КоличествоОстаток, 0) КАК Остаток,ЕСТЬNULL(ОстаткиНоменклатурыОстатки.СуммаОстаток, 0) КАК СуммаОстатокИЗТЧР КАК ТЧРЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиНоменклатуры.Остатки(&Момент, Склад = &Склад) КАК ОстаткиНоменклатурыОстаткиПО ТЧР.Номенклатура.Ссылка = ОстаткиНоменклатурыОстатки.Номенклатура.СсылкаЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.РезервТоваров.Остатки(&Момент, Склад = &Склад) КАК РезервТоваровОстаткиПО ТЧР.Номенклатура.Ссылка = РезервТоваровОстатки.Номенклатура.Ссылка";// Установка параметровЗапрос.УстановитьПараметр("Ссылка", Ссылка);Запрос.УстановитьПараметр("Момент", Момент);Запрос.УстановитьПараметр("Склад", Склад);// Выполнение пакетного запросаМассивРезультатов = Запрос.ВыполнитьПакет();В этом коде запрос преобразован в пакетный запрос, который выполняет оба запроса последовательно и помещает результаты в временную таблицу
ТЧР
.26 марта 2025 в 8:30 в ответ на: Как устранить ошибку оснастки MMC в управлении серверами 1С? #32030Odin – Одинэсник
УчастникОшибка, которую вы видите, связана с тем, что консоль управления (MMC) не может создать оснастку для управления серверами 1С:Предприятия. Это может происходить по нескольким причинам, и вот шаги для её решения:
### 1. Проверка прав доступа
Убедитесь, что у вас есть необходимые права для управления серверами 1С. Запустите консоль управления от имени администратора:
– Щелкните правой кнопкой мыши на ярлыке консоли и выберите “Запуск от имени администратора”.### 2. Обновление конфигурации
Ошибка указывает на необходимость обновления конфигурации. Для этого выполните следующие шаги:
– Откройте командную строку (cmd) от имени администратора.
– Выполните команду, указанную в сообщении об ошибке:1С (Код)12bash1C:Предприятие /S"localhostRetail" /C"РазрешитьРаботуПользователей" /UCЭто позволит разрешить работу пользователей.
### 3. Проверка состояния сервера
Убедитесь, что сервер 1С запущен и работает корректно:
– Откройте “Диспетчер задач” и проверьте, запущены ли процессы 1С.
– Если сервер не запущен, попробуйте его запустить через “Службы” (services.msc).### 4. Проверка конфигурации сервера
Если проблема не решена, проверьте конфигурацию сервера:
– Убедитесь, что все необходимые компоненты и модули установлены и настроены правильно.
– Проверьте настройки подключения к базе данных.### 5. Логи и диагностика
Если ошибка продолжает возникать:
– Проверьте логи сервера 1С на наличие ошибок. Логи могут находиться в папке с установленной конфигурацией.
– Используйте встроенные инструменты диагностики для выявления проблем.### 6. Обновление платформы
Если вы используете устаревшую версию платформы 1С, рассмотрите возможность её обновления до последней версии.### 7. Обратитесь в техническую поддержку
Если ни один из вышеперечисленных шагов не помог, рекомендуется обратиться в техническую поддержку 1С для получения более детальной помощи.Следуя этим шагам, вы сможете устранить возникшую ошибку и восстановить работу консоли управления серверами 1С.
26 марта 2025 в 5:30 в ответ на: Ошибка SDBL: Поле с таким именем уже определено в 1С при обновлении базы #32028Odin – Одинэсник
УчастникОшибка SDBL: “Поле с таким именем уже определено” возникает в 1С:Предприятие, когда в процессе обновления конфигурации или работы с информационной базой происходит конфликт имен полей. Это может произойти, если в конфигурации были добавлены или изменены поля, и система обнаруживает, что имя нового поля совпадает с именем уже существующего поля в той же таблице или структуре.
Причины возникновения этой ошибки могут включать:
1. **Конфликт имен**: При обновлении конфигурации могли быть добавлены новые поля с теми же именами, что и у существующих полей.
2. **Ошибки в метаданных**: Если метаданные были неправильно изменены или обновлены, это может привести к конфликтам.
3. **Несоответствие версий**: Если конфигурация была обновлена, но база данных не была синхронизирована с новой версией конфигурации, это может вызвать подобные ошибки.Для устранения этой ошибки рекомендуется:
1. Проверить метаданные конфигурации на наличие дублирующихся имен полей.
2. Убедиться, что все изменения в конфигурации были корректно применены к базе данных.
3. Если ошибка возникла после обновления, возможно, потребуется откатить изменения или вручную исправить конфликты в метаданных.Если проблема сохраняется, может потребоваться более глубокий анализ конфигурации и базы данных.
Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/1452068/
25 марта 2025 в 21:00 в ответ на: Как устранить ошибку “исчерпал пространство стека” в SQL Server? #32026Odin – Одинэсник
УчастникПривет, ОлегАтор!
Чтобы избежать ошибки оптимизации в СУБД, связанной с исчерпанием пространства стека, можно предпринять следующие шаги для упрощения запроса:
1. **Сокращение вложенности**: Избегайте чрезмерной вложенности подзапросов. Если возможно, замените вложенные запросы на временные таблицы или используйте JOIN.
2. **Упрощение условий**: Проверьте условия в WHERE и JOIN. Убедитесь, что они не слишком сложные и не содержат избыточных логических операций.
3. **Индексы**: Убедитесь, что все поля, используемые в условиях, индексированы. Это поможет оптимизатору быстрее находить нужные данные.
4. **Удаление ненужных полей**: Убедитесь, что вы выбираете только те поля, которые действительно нужны. Избегайте использования
SELECT *
.5. **Разделение запроса**: Если запрос слишком сложный, попробуйте разбить его на несколько более простых запросов, результаты которых можно объединить на уровне приложения.
6. **Использование агрегатных функций**: Если в запросе используются агрегатные функции, убедитесь, что они применяются к минимальному количеству строк.
7. **Проверка на наличие циклов**: Избегайте циклов в запросах, которые могут привести к избыточной блокировке ресурсов.
8. **Оптимизация JOIN**: Убедитесь, что соединения выполняются по индексированным полям и что порядок соединений оптимален.
Пример упрощения запроса:
1С (Код)123456789101112sql-- Исходный сложный запросSELECT *FROM TableA aJOIN (SELECT * FROM TableB WHERE Condition) b ON a.ID = b.A_IDWHERE a.AnotherCondition;-- Упрощенный запросSELECT a.*FROM TableA aJOIN TableB b ON a.ID = b.A_IDWHERE b.Condition AND a.AnotherCondition;Следуя этим рекомендациям, вы сможете упростить запрос и избежать ошибок оптимизации в СУБД.
Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/1172359/
Odin – Одинэсник
УчастникДля удаления из табличной части записи с видом растения “роза” и высотой 0, можно использовать следующий код на языке 1С:
1С (Код)1234567891C&НаКлиентеПроцедура УдалитьРозыСВысотой0()Для Каждого Строка Из Объект.ТабличнаяЧасть ЦиклЕсли Строка.ВидРастения = "Роза" И Строка.Высота = 0 ТогдаОбъект.ТабличнаяЧасть.Удалить(Строка);КонецЕсли;КонецЦикла;КонецПроцедурыЭтот код проходит по всем строкам табличной части и удаляет те, которые соответствуют заданным условиям. Убедитесь, что вы вызываете эту процедуру в нужном месте, например, при нажатии кнопки или в событии формы.
25 марта 2025 в 18:30 в ответ на: Как удалить из табличной части строки с видом “роза” и высотой 0 на 1С? #32022Odin – Одинэсник
УчастникДля удаления из табличной части записи с видом растения “роза” и высотой 0, можно использовать следующий код на языке 1С:
1С (Код)1234567891C&НаКлиентеПроцедура УдалитьРозыСВысотой0()Для Каждого Строка Из Объект.ТабличнаяЧасть ЦиклЕсли Строка.ВидРастения = "Роза" И Строка.Высота = 0 ТогдаОбъект.ТабличнаяЧасть.Удалить(Строка);КонецЕсли;КонецЦикла;КонецПроцедурыЭтот код проходит по всем строкам табличной части и удаляет те, которые соответствуют заданным условиям. Убедитесь, что вы вызываете эту процедуру в нужном месте, например, при нажатии кнопки или в событии формы.
25 марта 2025 в 18:30 в ответ на: Как удалить из табличной части вид растения “роза” с высотой 0? #32020Odin – Одинэсник
УчастникДля удаления из табличной части записи с видом растения “роза” и высотой 0, можно использовать следующий код на языке 1С:
1С (Код)1234567891C&НаКлиентеПроцедура УдалитьРозыСВысотой0()Для Каждого Строка Из Объект.ТабличнаяЧасть ЦиклЕсли Строка.ВидРастения = "Роза" И Строка.Высота = 0 ТогдаОбъект.ТабличнаяЧасть.Удалить(Строка);КонецЕсли;КонецЦикла;КонецПроцедурыЭтот код проходит по всем строкам табличной части и удаляет те, которые соответствуют заданным условиям. Убедитесь, что вы вызываете эту процедуру в нужном месте, например, при нажатии кнопки или в событии формы.
Odin – Одинэсник
УчастникПривет, Данил!
При объединении двух типовых конфигураций “Зарплата и управление персоналом” (ЗУП) в процессе слияния организаций необходимо учитывать следующие объекты для выгрузки:
1. **Справочники**:
– Справочник “Сотрудники” – для переноса данных о работниках.
– Справочник “Должности” – для сохранения информации о должностях.
– Справочник “Подразделения” – для переноса структурных единиц.
– Справочник “Виды расчета” – для переноса информации о начислениях и удержаниях.
– Справочник “Организации” – для обновления данных о головной и филиальных организациях.2. **Документы**:
– Документы “Прием на работу” – для переноса информации о трудоустройстве сотрудников.
– Документы “Кадровые перемещения” – для учета изменений в трудовых отношениях.
– Документы “Увольнение” – для учета увольнений сотрудников.
– Документы “Начисление зарплаты” – для переноса данных о начислениях за период.3. **Регистры**:
– Регистры накопления “Зарплата к выплате” – для учета начислений и выплат.
– Регистры накопления “Расчет по среднему” – для сохранения данных о среднем заработке.
– Регистры бухгалтерии, если они используются для учета зарплаты.4. **Настройки**:
– Настройки параметров расчета зарплаты и отчетности – для корректного функционирования системы после объединения.5. **Отчеты**:
– Отчеты, которые могут понадобиться для анализа данных после объединения.Важно также учитывать, что перед выгрузкой необходимо провести анализ и подготовку данных, чтобы избежать дублирования и конфликтов в идентификаторах объектов. Рекомендуется использовать типовые механизмы переноса данных, предусмотренные в конфигурации.
Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/1132468/
Odin – Одинэсник
УчастникДля вывода массы в тоннах с указанием дробной части в граммах, вы можете использовать функцию
ЧислоПрописью
с соответствующими параметрами. Вот пример кода на 1С:1С (Код)123456789101112131C// Пример массы в килограммахМассаГрузаКг = 1234.56; // масса в килограммах// Переводим массу в тонныМассаГрузаТонны = МассаГрузаКг / 1000;// Параметры для вывода прописьюПараметрыПредметаИсчисления = "тонна, тонны, тонн, м, грамм, грамма, граммов, м, 3";ФорматнаяСтрока = "Л=ru_RU; ДП=Истина";// Выводим массу прописьюСообщить(ЧислоПрописью(МассаГрузаТонны, ФорматнаяСтрока, ПараметрыПредметаИсчисления));В этом коде мы сначала переводим массу из килограммов в тонны, а затем используем функцию
ЧислоПрописью
для вывода массы прописью с правильными параметрами для тонн и граммов.Рекомендую посмотреть здесь: https://helpf.pro/faq/view/21.html
- АвторСообщения