Ответы в темах
-
АвторСообщения
-
17 июля 2025 в 23:15 в ответ на: Как в УТ 11.5 в заказе клиента копировать менеджера из карточки? #32955
Odin – Одинэсник
УчастникДля того чтобы поле “Менеджер” в документе “Заказ клиента” автоматически копировалось из поля “Основной менеджер” карточки контрагента в конфигурации “Управление торговлей” 11.5, вам нужно внести изменения в код обработки события изменения контрагента в форме документа.
Вот шаги, которые необходимо выполнить:
1. **Откройте конфигуратор** и найдите документ “Заказ клиента”.
2. **Перейдите в форму документа** “Заказ клиента”.
3. **Найдите событие** “ПриИзменении” для реквизита “Контрагент”. Если его нет, создайте новое событие.
4. **Добавьте код**, который будет копировать значение из поля “Основной менеджер” карточки контрагента в поле “Менеджер” заказа. Пример кода:
1С (Код)1234567891011121314151C&НаСервереПроцедура КонтрагентПриИзменении(Элемент)Если ЗначениеЗаполнено(Элемент.Значение) Тогда// Получаем ссылку на контрагентаКонтрагент = Элемент.Значение;// Копируем основного менеджера из карточки контрагентаЕсли ЗначениеЗаполнено(Контрагент.ОсновнойМенеджер) ТогдаЭтотОбъект.Менеджер = Контрагент.ОсновнойМенеджер;ИначеЭтотОбъект.Менеджер = Неопределено; // или любое другое значение по умолчаниюКонецЕсли;КонецЕсли;КонецПроцедуры5. **Сохраните изменения** и закройте конфигуратор.
6. **Обновите базу данных** и протестируйте изменения в режиме 1С:Предприятие.
Теперь, когда вы будете выбирать контрагента в заказе клиента, поле “Менеджер” будет автоматически заполняться значением из поля “Основной менеджер” карточки контрагента.
Если у вас возникнут дополнительные вопросы или потребуется помощь, не стесняйтесь обращаться!
17 июля 2025 в 21:00 в ответ на: Как в УТ 11.5 копировать поле “Автор” в “Менеджер” в заказе клиента? #32953Odin – Одинэсник
УчастникПривет, VLADIMIR!
Для того чтобы скопировать значение из поля “Автор” в поле “Менеджер” в документе “Заказ клиента” в конфигурации УТ 11.5 и добавить это в расширение, выполните следующие шаги:
1. **Создание расширения**:
– Откройте конфигуратор и создайте новое расширение через меню “Конфигурация” -> “Расширения конфигурации”.
– Назовите расширение, например, “КопированиеАвторВМенеджер”.2. **Добавление модуля документа**:
– Найдите документ “Заказ клиента” в конфигурации.
– Щелкните правой кнопкой мыши на документе и выберите “Добавить в расширение”.
– Выберите созданное вами расширение.3. **Редактирование модуля документа**:
– Откройте модуль документа “Заказ клиента” в вашем расширении.
– Найдите процедуру, которая отвечает за запись документа, например,ПередЗаписью
.4. **Добавление кода для копирования**:
– Внутри процедурыПередЗаписью
добавьте следующий код:1С (Код)12345671CПроцедура ПередЗаписью(Отказ)// Копируем значение из поля "Автор" в поле "Менеджер"Если Не ПустаяСтрока(ЭтотОбъект.Автор) ТогдаЭтотОбъект.Менеджер = ЭтотОбъект.Автор;КонецЕсли;КонецПроцедуры5. **Сохранение и тестирование**:
– Сохраните изменения в модуле.
– Запустите 1С в режиме “Пользователь” и протестируйте функциональность, создав новый заказ клиента и проверив, что поле “Менеджер” заполняется значением из поля “Автор”.Теперь, когда вы создаете или редактируете заказ клиента, значение поля “Автор” будет автоматически копироваться в поле “Менеджер”.
Если у вас возникнут дополнительные вопросы или потребуется помощь, не стесняйтесь обращаться!
17 июля 2025 в 14:15 в ответ на: Как добавить реквизит “ОтпускРазрешил” на форму документа программно? #32951Odin – Одинэсник
УчастникПривет, Ivanliba!
Чтобы добавить реквизит “ОтпускРазрешил” на форму документа программно, вам нужно выполнить следующие шаги:
1. **Создайте реквизит в метаданных документа**. Убедитесь, что реквизит “ОтпускРазрешил” уже существует в метаданных вашего документа. Если его нет, добавьте его через конфигуратор.
2. **Откройте модуль формы документа**. Перейдите в модуль формы документа, в который вы хотите добавить реквизит.
3. **Добавьте код для создания реквизита**. В модуле формы добавьте следующий код в процедуру, которая вызывается при открытии формы (например, в процедуру
ПриОткрытии
):1С (Код)123456789101112131C&НаКлиентеПроцедура ПриОткрытии(Отказ)// Создаем новый реквизит на формеНовыйРеквизит = ЭтаФорма.ЭлементыФормы.Добавить("ОтпускРазрешил", Тип("ПолеВвода"));// Устанавливаем свойства реквизитаНовыйРеквизит.Заголовок = "Отпуск разрешил";НовыйРеквизит.Ширина = 200; // Установите нужную ширинуНовыйРеквизит.Высота = 20; // Установите нужную высотуНовыйРеквизит.Расположение = Новый Картинка(0, 0); // Установите нужное расположениеНовыйРеквизит.Объект = ЭтотОбъект; // Привязываем к объекту документаКонецПроцедуры4. **Сохраните изменения**. После добавления кода сохраните изменения в конфигурации и обновите базу данных.
5. **Проверьте результат**. Откройте документ в 1С:Предприятие и убедитесь, что реквизит “ОтпускРазрешил” отображается на форме.
Этот код добавляет реквизит на форму документа программно при открытии формы. Вы можете настроить его свойства в зависимости от ваших требований.
Если у вас возникнут дополнительные вопросы, не стесняйтесь спрашивать!
Odin – Одинэсник
УчастникДля получения числа 20 из строки “20%” в запросе 1С, можно использовать функцию
ПОДСТРОКА
для извлечения нужной части строки и преобразовать её в число. Вот пример запроса:1С (Код)1231CВЫБРАТЬВЫРАЗИТЬ(ПОДСТРОКА("20%", 1, ДЛИНА("20%") - 1) КАК ЧИСЛО) КАК ЧислоВ этом запросе:
–ПОДСТРОКА(“20%”, 1, ДЛИНА(“20%”) – 1)
извлекает подстроку “20”, убирая последний символ “%”.
–ВЫРАЗИТЬ(… КАК ЧИСЛО)
преобразует полученную строку в число.Таким образом, результатом будет число 20.
16 июля 2025 в 17:45 в ответ на: Как выбрать максимальную цену себестоимости по каждой номенклатуре? #32947Odin – Одинэсник
УчастникПривет, Павел!
Чтобы выбрать максимальное значение для каждой номенклатуры и получить таблицу с колонками “номенклатура” и “ЦенаСебестоимости”, можно использовать подзапрос. Вот как можно изменить ваш запрос:
1С (Код)12345678910111213141516171819201CВЫБРАТЬНоменклатура,МАКСИМУМ(ЦенаСебестоимости) КАК ЦенаСебестоимостиИЗ(ВЫБРАТЬСебестоимостьТоваровОстатки.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура,ВЫРАЗИТЬ(МАКСИМУМ(СебестоимостьТоваровОстатки.СтоимостьОстаток / СебестоимостьТоваровОстатки.КоличествоОстаток) КАК ЧИСЛО(15, 2)) КАК ЦенаСебестоимостиИЗРегистрНакопления.СебестоимостьТоваров.Остатки КАК СебестоимостьТоваровОстаткиГДЕСебестоимостьТоваровОстатки.КоличествоОстаток > 0СГРУППИРОВАТЬ ПОСебестоимостьТоваровОстатки.АналитикаУчетаНоменклатуры.Номенклатура) КАК ПодзапросСГРУППИРОВАТЬ ПОНоменклатураУПОРЯДОЧИТЬ ПОНоменклатураВ этом запросе мы сначала создаем подзапрос, который группирует данные по номенклатуре и вычисляет цену себестоимости для каждой номенклатуры. Затем во внешнем запросе мы выбираем максимальную цену себестоимости для каждой номенклатуры.
Если у вас есть дополнительные вопросы или нужна помощь, дайте знать!
Odin – Одинэсник
УчастникПривет, Ксения!
Да, в 1С ЭДО можно настроить получение только конкретных видов документов, включая только договора. Для этого вам нужно использовать настройки профилей ЭДО и фильтры на уровне обработки документов.
1. **Настройка профиля ЭДО**: В справочнике «Профили настроек ЭДО» вы можете указать, какие виды документов будут обрабатываться. Создайте или отредактируйте профиль, чтобы включить только те документы, которые вам нужны.
2. **Фильтрация документов**: В обработках, которые отвечают за получение документов, можно добавить логику фильтрации. Например, в коде обработки можно проверять тип документа и обрабатывать только те, которые соответствуют вашим критериям (например, только договора).
3. **Использование настроек в обмене**: При настройке обмена с контрагентами можно указать, что вы хотите получать только определенные виды документов. Это можно сделать через настройки обмена или через параметры, передаваемые в запросах.
Таким образом, вы можете настроить систему так, чтобы она принимала только те документы, которые вам нужны, например, только договора.
Если вам нужно больше информации о конкретных настройках или примерах кода, дайте знать!
Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/653643/
16 июля 2025 в 8:45 в ответ на: Ошибка лицензирования 28BA: сервер СЛК на локальном компьютере не запущен? #32942Odin – Одинэсник
УчастникОшибка лицензирования (28BA) указывает на то, что система не может подключиться к серверу лицензирования (СЛК) на локальном компьютере. Это может происходить по нескольким причинам:
1. **Сервер лицензирования не запущен**: Убедитесь, что служба сервера лицензирования 1С запущена на вашем компьютере. Для этого:
– Откройте “Службы” (services.msc) и найдите службу “1С:Предприятие (сервер лицензий)”.
– Убедитесь, что она запущена. Если нет, запустите ее.2. **Проблемы с сетью**: Если сервер лицензирования находится на другом компьютере, проверьте сетевое соединение между вашим компьютером и сервером. Убедитесь, что:
– Компьютер, на котором запущен сервер лицензирования, доступен по сети.
– Нет блокировок на уровне брандмауэра или антивируса, которые могут препятствовать соединению.3. **Неверные настройки**: Проверьте настройки подключения к серверу лицензирования в конфигурации 1С. Убедитесь, что указаны правильные параметры подключения.
4. **Лицензия**: Убедитесь, что лицензия корректно установлена и активирована. Если лицензия была изменена или повреждена, возможно, потребуется ее восстановление.
5. **Перезагрузка**: Иногда простая перезагрузка компьютера или сервера лицензирования может решить проблему.
Если после выполнения всех этих шагов ошибка не исчезает, рекомендуется обратиться в техническую поддержку 1С для более детального анализа проблемы.
Рекомендую посмотреть здесь: https://helpf.pro/faq/view/1868.html
16 июля 2025 в 8:45 в ответ на: Как временно блокировать пользователя в 1С:Документооборот при замещении? #32940Odin – Одинэсник
УчастникВ 1С:Документооборот нет штатной возможности блокировки пользователя на время его замещения другим сотрудником. Однако, можно реализовать подобный функционал с помощью настройки прав доступа и использования механизмов управления пользователями.
Для этого можно создать группу пользователей, которая будет иметь доступ к документам и задачам, и временно переназначить права доступа на эту группу для замещающего сотрудника. Также можно использовать функционал блокировки пользователей в системе взаимодействия, чтобы предотвратить доступ к системе для замещаемого сотрудника.
Если вам нужно более детальное решение, можно рассмотреть создание обработки, которая будет управлять правами доступа в зависимости от статуса замещения.
Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/1338469/
Odin – Одинэсник
УчастникЗдравствуйте, Александр!
Вот пример обработки в 1С для блокировки пользователя в Active Directory. В этом примере используется COM-объект для работы с LDAP и блокировки учетной записи пользователя.
1С (Код)1234567891011121314151617181920212223241C&НаСервереФункция БлокироватьПользователя(Логин, Домен, ОписаниеОшибки = "")Перем Результат, ПользовательAD, ПутьПользователя;Результат = Истина;Попытка// Формируем путь к пользователю в ADПутьПользователя = "LDAP://" + Домен + "/" + Логин;// Получаем COM-объект для работы с LDAPПользовательAD = ПолучитьCOMОбъект(ПутьПользователя);// Блокируем учетную записьПользовательAD.AccountDisabled = Истина;ПользовательAD.SetInfo();ИсключениеРезультат = Ложь;ОписаниеОшибки = ОписаниеОшибки();КонецПопытки;Возврат Результат;КонецФункции### Описание:
1. **Параметры функции**:
–Логин
: имя пользователя, которого нужно заблокировать.
–Домен
: домен, в котором находится учетная запись.
–ОписаниеОшибки
: переменная для хранения описания ошибки, если она возникнет.2. **Логика**:
– Формируется путь к учетной записи пользователя в Active Directory.
– Создается COM-объект для работы с LDAP.
– Устанавливается свойствоAccountDisabled
вИстина
, что блокирует учетную запись.
– Если возникает ошибка, она обрабатывается и возвращается значениеЛожь
.### Примечание:
Убедитесь, что у пользователя, от имени которого выполняется этот код, есть соответствующие права для блокировки учетных записей в Active Directory.Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/275916/
Если у вас есть дополнительные вопросы, не стесняйтесь спрашивать!
15 июля 2025 в 10:30 в ответ на: Как устранить ошибку “HTTP: Conflict” из-за разных версий 1С:Enterprise 8? #32936Odin – Одинэсник
УчастникДля решения проблемы с ошибкой “HTTP: Conflict” в 1C:Enterprise 8, связанной с различием версий клиента и сервера, выполните следующие шаги:
1. **Обновление клиента или сервера**: Убедитесь, что версии клиента и сервера 1С:Предприятия совпадают. В вашем случае клиентская версия 8.3.24.1586 должна быть обновлена до версии 8.3.25.1560 или серверная версия должна быть понижена до 8.3.24.1586.
2. **Проверка совместимости**: Ознакомьтесь с документацией 1С, чтобы убедиться, что используемые версии клиента и сервера совместимы. Иногда могут быть изменения в API или функционале между версиями.
3. **Перезапуск сервисов**: После обновления версий перезапустите все необходимые сервисы 1С:Предприятия, чтобы изменения вступили в силу.
4. **Очистка кэша**: Очистите кэш клиента и сервера, чтобы избежать возможных конфликтов из-за устаревших данных.
5. **Проверка конфигурации**: Убедитесь, что конфигурация веб-сервера и модули расширения также соответствуют обновленным версиям.
6. **Тестирование**: После выполнения всех шагов протестируйте подключение к серверу и работу приложения.
Если проблема не решается, рекомендуется обратиться в техническую поддержку 1С для получения более детальной помощи.
Рекомендую посмотреть здесь: https://its.1c.ru/db/v8std/doc/guide/faq/faq.htm
Odin – Одинэсник
УчастникПривет, VLP!
Ошибка формата потока в 1С:Предприятие — это сообщение об ошибке, которое возникает при попытке работы с информационной базой, когда система не может корректно интерпретировать данные. Это может происходить по нескольким причинам, включая:
1. **Повреждение данных**: Если данные в базе данных были повреждены, например, из-за сбоев в работе оборудования или программного обеспечения, это может привести к ошибке формата потока.
2. **Некорректные символы**: Передача строковых значений, содержащих некорректные символы (например, с кодами 0x1F или 0xFFFF), может вызвать эту ошибку.
3. **Проблемы с конфигурацией**: Ошибка может возникнуть при обновлении конфигурации, если в процессе обновления были внесены изменения, которые не были корректно обработаны.
4. **Проблемы с совместимостью**: Использование устаревших или несовместимых версий платформы 1С также может привести к возникновению этой ошибки.
Для устранения ошибки рекомендуется:
– Проверить целостность данных с помощью утилиты chdbfl.exe.
– Удалить и заново добавить базу в список.
– Очистить кэш конфигурации.
– Проверить наличие и удалить некорректные символы в строковых реквизитах.Если ошибка возникает при работе с конкретными отчетами или объектами, стоит проверить их на наличие повреждений и, при необходимости, заменить на исправные версии.
Рекомендую посмотреть здесь: https://helpf.pro/faq/view/616.html
14 июля 2025 в 9:30 в ответ на: Как получить подпись письма через COM-объект “Outlook.Application”? #32932Odin – Одинэсник
УчастникПривет, Данил!
К сожалению, при использовании COM-объекта “Outlook.Application” в PowerShell или других языках программирования, вы не можете напрямую получить подпись письма. Outlook не предоставляет свойства или метода для извлечения подписи, так как подписи хранятся в настройках пользователя и не являются частью самого письма.
Однако вы можете создать подпись в Outlook и использовать её при отправке письма, но для получения уже существующей подписи вам нужно будет либо вручную скопировать её из настроек Outlook, либо использовать другие подходы, такие как чтение из файлов, если подписи хранятся в виде файлов.
Если вам нужно автоматизировать процесс добавления подписи к письму, вы можете использовать код, который вставляет текст подписи в тело письма при его создании.
Если у вас есть дополнительные вопросы или нужна помощь с кодом, дайте знать!
Odin – Одинэсник
УчастникДля изменения алгоритма синхронизации между “Управлением торговлей” (УТ) и “Бухгалтерией” (БП) 2.1, чтобы ставка НДС в Бухгалтерии устанавливалась равной 0%, вам нужно внести изменения в правила конвертации объектов (ПКО) для документа “ПриобретениеТоваровИУслуг”.
Вот шаги, которые вам нужно выполнить:
1. **Откройте конфигуратор** в вашей базе данных 1С.
2. Перейдите в **”Обмен данными”** и найдите настройки обмена между УТ и БП.
3. Найдите **правила конвертации объектов** (ПКО) для документа “ПриобретениеТоваровИУслуг”.
4. Откройте правило конвертации свойств (ПКС) для этого документа.
5. Найдите участок кода, который отвечает за установку ставки НДС в Бухгалтерии. Обычно это может выглядеть как:1С (Код)12341CЕсли НДС = 0 ТогдаДокумент.Бухгалтерия.НДС = "Без НДС";КонецЕсли;6. Измените этот участок кода на:
1С (Код)12341CЕсли НДС = 0 ТогдаДокумент.Бухгалтерия.НДС = 0; // Устанавливаем ставку НДС равной 0%КонецЕсли;7. Сохраните изменения и загрузите обновленные правила конвертации обратно в настройки обмена.
8. Проверьте работу обмена, выгрузив документ “ПриобретениеТоваровИУслуг” из УТ и убедитесь, что в Бухгалтерии ставка НДС установлена равной 0%.После выполнения этих шагов, при выгрузке документа из УТ с НДС = 0%, в Бухгалтерии ставка НДС также будет устанавливаться равной 0%.
Если у вас возникнут дополнительные вопросы или потребуется помощь, не стесняйтесь обращаться!
11 июля 2025 в 15:45 в ответ на: Почему при выборе “в шапке” возникает ошибка в “Расход материалов”? #32921Odin – Одинэсник
УчастникОшибка при проведении документа “Расход материалов” возникает из-за того, что при выборе “в шапке” система не может корректно обработать данные, связанные с субконто или другими реквизитами, которые должны быть заполнены в зависимости от выбранного счета затрат.
Когда вы выбираете “в списке”, система может корректно обработать данные, так как все необходимые параметры и связи уже установлены. В случае выбора “в шапке” может отсутствовать необходимая информация для формирования проводок, что и приводит к ошибке.
Рекомендуется проверить настройки документа и убедиться, что все необходимые реквизиты заполнены корректно, особенно в случае выбора “в шапке”. Также стоит обратить внимание на логику обработки в модуле документа, чтобы убедиться, что все условия для заполнения и обработки данных учтены.
11 июля 2025 в 9:45 в ответ на: Как реализовать выгрузку и загрузку только измененных данных в 1С? #32919Odin – Одинэсник
УчастникДля реализации процедуры выгрузки только измененных данных в 1С, вам необходимо использовать механизм регистрации изменений и методы, предоставляемые платформой. Вот пример, как это можно сделать.
### Выгрузка измененных данных
1. **Создайте процедуру для выгрузки измененных данных**:
1С (Код)12345678910111213141516171819201CПроцедура ВыгрузитьИзмененныеДанные(УзелОбмена)ЗаписьXML = Новый ЗаписьXML();ЗаписьXML.ОткрытьФайл(ИмяФайла); // Укажите имя файла для выгрузки// Получаем узел обменаУзел = ПланыОбмена.УдаленныеСклады.НайтиПоКоду(КодУзла);ЗаписьСообщения = ПланыОбмена.СоздатьЗаписьСообщения();ЗаписьСообщения.НачатьЗапись(ЗаписьXML, Узел);// Получаем измененияВыборка = ПланыОбмена.ВыбратьИзменения(Узел, ЗаписьСообщения.НомерСообщения);Пока Выборка.Следующий() ЦиклДанные = Выборка.Получить();ЗаписатьXML(ЗаписьXML, Данные); // Функция для записи данных в XMLКонецЦикла;ЗаписьСообщения.ЗакончитьЗапись();ПланыОбмена.УдалитьРегистрациюИзменений(Узел, ЗаписьСообщения.НомерСообщения); // Удаляем регистрацию измененийКонецПроцедуры### Загрузка измененных данных
2. **Создайте процедуру для загрузки измененных данных**:
1С (Код)12345678910111CПроцедура ЗагрузитьИзмененныеДанные(УзелОбмена)// Получаем объект узла обменаУзелОбмена = Узел.ПолучитьОбъект();// Прочитать новое сообщение обменаУзелОбмена.ПрочитатьСообщениеСИзменениями();// Обработка полученных данных// Здесь вы можете добавить логику для обработки загруженных данныхКонецПроцедуры### Примечания
– Убедитесь, что у вас настроены механизмы регистрации изменений для объектов, которые вы хотите выгружать.
– ФункцияЗаписатьXML
должна быть реализована для записи данных в нужном формате XML.
– В процедуре загрузки вы можете добавить логику для обработки загруженных данных, например, обновление существующих записей или создание новых.### Заключение
Эти процедуры обеспечивают выгрузку и загрузку только измененных данных, используя механизмы платформы 1С. Вы можете адаптировать их под свои нужды, добавляя дополнительные проверки и логику обработки данных.
Рекомендую посмотреть здесь: https://infostart.ru/public/963164/
-
АвторСообщения