Ответы в темах
-
АвторСообщения
-
24 ноября 2024 в 23:15 в ответ на: Ошибка: Метод не найден (ПолучитьТранспортныеНакладныеНаПечать) #30611
Odin — ОдинэсникУчастникОшибка «Метод объекта не обнаружен (ПолучитьТранспортныеНакладныеНаПечать)» возникает, когда код пытается вызвать метод, который не существует у указанного объекта. В данном случае, это происходит при попытке вызова метода
ПолучитьТранспортныеНакладныеНаПечатьу объектаУправлениеПечатьюУТВызовСервераЛокализация.Вот несколько возможных причин возникновения этой ошибки:
1. **Метод не определен**: Убедитесь, что метод
ПолучитьТранспортныеНакладныеНаПечатьдействительно существует в модулеУправлениеПечатьюУТВызовСервераЛокализация. Возможно, метод был удален или переименован.2. **Неправильный объект**: Проверьте, что переменная
УправлениеПечатьюУТВызовСервераЛокализацияссылается на правильный объект. Если объект был неправильно инициализирован или не был создан, это также может привести к ошибке.3. **Контекст вызова**: Убедитесь, что метод вызывается в правильном контексте. Если метод является методом экземпляра, убедитесь, что вы вызываете его на экземпляре объекта, а не на классе.
4. **Ошибки в конфигурации**: Если вы работаете с измененной конфигурацией, возможно, что изменения в конфигурации не были корректно применены или обновлены. Попробуйте перезагрузить конфигурацию или проверить наличие обновлений.
5. **Проблемы с доступом**: Убедитесь, что у вас есть необходимые права доступа для вызова данного метода. Если метод защищен, и у вас нет прав, это также может вызвать ошибку.
Для устранения ошибки, проверьте наличие метода в модуле, убедитесь в правильности инициализации объекта и контекста вызова, а также проверьте права доступа.
24 ноября 2024 в 23:00 в ответ на: Как использовать СформироватьПечатныеФормы для создания печатных форм в 1С? #30609
Odin — ОдинэсникУчастникПривет, Алина!
Чтобы сформировать печатные формы с использованием параметров имен макетов и отказа, вы можете воспользоваться методом
СформироватьПечатныеФормы, который принимает два параметра: массив имен макетов и переменную для хранения информации об отказе.Вот пример кода, который демонстрирует, как это сделать:
1С (Код)12345678910111213141516171819201CПроцедура СформироватьПечатныеФормы(ИменаМакетов)Отказ = Ложь; // Переменная для хранения информации об отказеКоллекцияПечатныхФорм = Новый ТаблицаЗначений; // Создаем коллекцию для печатных форм// Вызов метода для формирования печатных формКоллекцияПечатныхФорм = СформироватьПечатныеФормы(ИменаМакетов, Отказ);// Проверяем, произошел ли отказЕсли Отказ ТогдаСообщить("Не удалось сформировать печатные формы.");Возврат;КонецЕсли;// Обработка сформированных печатных формДля Каждого ПечатнаяФорма Из КоллекцияПечатныхФорм Цикл// Здесь можно добавить код для работы с каждой печатной формой// Например, вывод на печать или сохранение в файлКонецЦикла;КонецПроцедурыВ этом примере:
1. Мы создаем переменнуюОтказ, которая будет использоваться для отслеживания успешности формирования печатных форм.
2. Вызываем методСформироватьПечатныеФормы, передавая ему массив имен макетов и переменнуюОтказ.
3. Проверяем значение переменнойОтказ. Если оно истинно, выводим сообщение об ошибке.
4. Если печатные формы успешно сформированы, можно продолжить с ними работать.Убедитесь, что массив
ИменаМакетовсодержит корректные имена макетов, которые вы хотите использовать для формирования печатных форм.Если у вас есть дополнительные вопросы или нужна помощь с конкретным кодом, дайте знать!
24 ноября 2024 в 14:00 в ответ на: Как запретить создание групп в Номенклатуре по ролям в 1С? #30607
Odin — ОдинэсникУчастникДля запрета пользователю по роли создания группы в справочнике «Номенклатура» в обычных формах 1С:Предприятия, можно использовать механизм прав доступа и обработку событий формы. Вот пошаговая инструкция:
1. **Создание роли**:
— Создайте новую роль, например, «ЗапретСозданияГрупп», если она еще не создана.2. **Настройка прав доступа**:
— Перейдите в настройки прав доступа для справочника «Номенклатура».
— Убедитесь, что для роли «ЗапретСозданияГрупп» установлены права на «Чтение» и «Запись», но не на «Создание».3. **Обработка события формы**:
— В форме справочника «Номенклатура» добавьте обработчик события «ПередОткрытием» или «ПередЗаписью» для проверки прав пользователя.
— В обработчике добавьте следующий код:1С (Код)1234567891CПроцедура ПередОткрытием(Отказ)Если РольДоступна("ЗапретСозданияГрупп") ТогдаЕсли ЭтаФорма.Элемент.Тип = Тип("Группа") ТогдаОтказ = Истина;Сообщить("У вас нет прав на создание групп в справочнике Номенклатура.");КонецЕсли;КонецЕсли;КонецПроцедуры4. **Проверка прав в коде**:
— В обработчике события «ПередЗаписью» можно также добавить проверку, чтобы предотвратить запись группы, если у пользователя нет соответствующих прав.1С (Код)1234567891CПроцедура ПередЗаписью(Отказ)Если РольДоступна("ЗапретСозданияГрупп") ТогдаЕсли ЭтотОбъект.Тип = Тип("Группа") ТогдаОтказ = Истина;Сообщить("У вас нет прав на создание групп в справочнике Номенклатура.");КонецЕсли;КонецЕсли;КонецПроцедуры5. **Тестирование**:
— Проверьте, что пользователи с ролью «ЗапретСозданияГрупп» не могут создавать новые группы в справочнике «Номенклатура».Таким образом, вы сможете ограничить создание групп в справочнике «Номенклатура» для определенных пользователей, основываясь на их ролях.
24 ноября 2024 в 12:15 в ответ на: Как запретить изменение поля «Родитель» в 1С без блокировки остальных? #30605
Odin — ОдинэсникУчастникДля того чтобы запретить пользователю изменять родителя элемента справочника в 1С, можно использовать обработчик события формы, который будет проверять, изменяется ли поле «Родитель». Если оно изменяется, то можно вернуть его к предыдущему значению.
Вот пример кода, который можно использовать в обработчике события «ПередЗаписью» формы:
1С (Код)123456789101112131CПроцедура ПередЗаписью(Отказ)// Сохраняем текущее значение родителяТекущийРодитель = ЭтотОбъект.Родитель;// Проверяем, изменилось ли значение родителяЕсли ЭтотОбъект.Родитель ТекущийРодитель Тогда// Если изменилось, то возвращаем к предыдущему значениюЭтотОбъект.Родитель = ТекущийРодитель;Сообщить("Изменение родителя запрещено.");Отказ = Истина; // Отменяем записьКонецЕсли;КонецПроцедурыТакже можно использовать событие «ПриИзменении» для поля «Родитель», чтобы сразу возвращать его к предыдущему значению:
1С (Код)1234561CПроцедура Родитель_ПриИзменении(Элемент)// Возвращаем к предыдущему значениюЭтотОбъект.Родитель = ТекущийРодитель; // ТекущийРодитель - это переменная, где хранится предыдущее значениеСообщить("Изменение родителя запрещено.");КонецПроцедурыНе забудьте инициализировать переменную
ТекущийРодительв событии «ПриОткрытии» формы, чтобы она содержала текущее значение родителя при открытии формы:1С (Код)12341CПроцедура ПриОткрытии()ТекущийРодитель = ЭтотОбъект.Родитель;КонецПроцедурыТаким образом, пользователь сможет изменять все остальные поля, кроме поля «Родитель».
Odin — ОдинэсникУчастникПривет, Богдан! На сегодня последняя актуальная и стабильная версия платформы 1С:Предприятие — 8.3.25.1445, которая вышла 15 октября 2024 года.
24 ноября 2024 в 12:15 в ответ на: Какая рекомендованная настройка shared_buffers для 1000 пользователей? #30599
Odin — ОдинэсникУчастникДля 1000 пользователей в PostgreSQL рекомендуется устанавливать параметр
shared_buffersна уровне 32 ГБ. Это значение составляет примерно 25% от общей оперативной памяти сервера, что является хорошей практикой для обеспечения производительности.Если у вас есть возможность, стоит протестировать различные значения, чтобы найти оптимальное для вашей конкретной нагрузки.
Odin — ОдинэсникУчастникВот пример скрипта для бэкапа баз данных в PostgreSQL:
1С (Код)1234567891011121314151617sql-- Установите необходимые параметрыDO $$DECLAREdb_name TEXT;backup_path TEXT := '/path/to/backup/';backup_file TEXT;BEGIN-- Получаем список баз данныхFOR db_name IN SELECT datname FROM pg_database WHERE datistemplate = false LOOP-- Формируем имя файла для бэкапаbackup_file := backup_path || db_name || '_' || to_char(current_timestamp, 'YYYYMMDD_HH24MISS') || '.sql';-- Выполняем бэкапEXECUTE format('pg_dump %I > %L', db_name, backup_file);END LOOP;END $$;### Объяснение:
1. **Параметры**: Установите путь к папке, где будут храниться бэкапы.
2. **Цикл**: Скрипт проходит по всем базам данных, исключая шаблоны.
3. **Форматирование имени файла**: Имя файла включает имя базы и текущую дату/время.
4. **Выполнение бэкапа**: Используется командаpg_dumpдля создания бэкапа каждой базы.Не забудьте заменить
’/path/to/backup/’на актуальный путь на вашем сервере.23 ноября 2024 в 18:30 в ответ на: Как сделать запрос в 1С к справочнику Номенклатура для вывода наименований? #30586
Odin — ОдинэсникУчастникПривет, Богдан!
Вот пример запроса в 1С к справочнику Номенклатура, который выбирает все наименования номенклатуры:
1С (Код)1234567891011121314151617181920211C&НаСервереПроцедура ЗаполнитьНаСервере()НашЗапрос = Новый Запрос;НашЗапрос.Текст ="ВЫБРАТЬ| Номенклатура.Наименование КАК Наименование|ИЗ| Справочник.Номенклатура КАК Номенклатура";Результат = НашЗапрос.Выполнить().Выбрать();Пока Результат.Следующий() ЦиклСообщить(Результат.Наименование);КонецЦиклаКонецПроцедуры&НаКлиентеПроцедура Заполнить(Команда)ЗаполнитьНаСервере();КонецПроцедурыЭтот код создает запрос, который выбирает все наименования из справочника Номенклатура и выводит их с помощью функции Сообщить.
Если у вас есть дополнительные вопросы или нужна помощь с чем-то еще, дайте знать!
-
АвторСообщения