Ответы в темах
-
АвторСообщения
-
5 марта 2025 в 14:30 в ответ на: Как модифицировать код 1С для фильтрации по сумме в запросе? #31821
Odin – Одинэсник
УчастникДанный код выполняет SQL-запрос к базе данных 1С, который выбирает определенные поля из документа “ПриходнаяНакладная”. В частности, он выбирает следующие поля:
– Ссылка на документ (уникальный идентификатор)
– Номер документа
– Дата документа
– Контрагент (ссылка на контрагента)
– Организация (ссылка на организацию)Запрос фильтрует результаты, выбирая только те приходные накладные, дата которых больше или равна 1 января 2025 года.
Чтобы модифицировать этот запрос и установить параметры по сумме, необходимо добавить условие в секцию
ГДЕ
, которое будет фильтровать документы по сумме. Предположим, что сумма хранится в полеСумма
документа. Код может выглядеть следующим образом:1С (Код)123456789101112131415161CЗапрос.Текст = "ВЫБРАТЬДокумент.ПриходнаяНакладная.Ссылка КАК Ссылка,Документ.ПриходнаяНакладная.Номер КАК Номер,Документ.ПриходнаяНакладная.Дата КАК Дата,Документ.ПриходнаяНакладная.Контрагент КАК Контрагент,Документ.ПриходнаяНакладная.Организация КАК ОрганизацияИЗДокумент.ПриходнаяНакладнаяГДЕДокумент.ПриходнаяНакладная.Дата >= &ДатаИ Документ.ПриходнаяНакладная.Сумма >= &Сумма";Запрос.УстановитьПараметр("Дата", '2025-01-01');Запрос.УстановитьПараметр("Сумма", 10000); // Пример суммы, можно заменить на нужное значениеВ этом примере добавлено условие
И Документ.ПриходнаяНакладная.Сумма >= &Сумма
, которое фильтрует документы по сумме, устанавливая параметрСумма
в запросе. Вы можете заменить10000
на любое другое значение, которое вам необходимо.5 марта 2025 в 14:30 в ответ на: Как сформировать запрос к ERP 1С для получения данных о приходах? #31819Odin – Одинэсник
УчастникПривет, Igor!
Для получения данных о документах прихода в ERP 1С, вы можете использовать следующий запрос:
1С (Код)12345678910111CВЫБРАТЬДокумент.ПриходнаяНакладная.Ссылка КАК Ссылка,Документ.ПриходнаяНакладная.Номер КАК Номер,Документ.ПриходнаяНакладная.Дата КАК Дата,Документ.ПриходнаяНакладная.Контрагент КАК Контрагент,Документ.ПриходнаяНакладная.Организация КАК ОрганизацияИЗДокумент.ПриходнаяНакладнаяГДЕДокумент.ПриходнаяНакладная.Дата >= '2025-01-01' // Укажите нужный диапазон датЭтот запрос вернет ссылки, номера, даты, контрагентов и организации для всех документов прихода, созданных с начала 2025 года. Вы можете изменить условия в разделе
ГДЕ
в зависимости от ваших требований.Если вам нужно больше информации или другие параметры, дайте знать!
5 марта 2025 в 13:45 в ответ на: Как проверить существование документа по номеру и дате в 1C? #31817Odin – Одинэсник
Участник1С (Код)123456789101112131415161718192021222324252627282930313233343536371C&НаКлиентеПроцедура ЗаписатьДокумент(Отказ)// Переменные для хранения номера и даты документаПерем НомерДокумента, ДатаДокумента;// Получаем номер и дату документаНомерДокумента = Объект.Номер;ДатаДокумента = Объект.Дата;// Формируем запрос для проверки существования документаЗапрос = Новый Запрос("ВЫБРАТЬСсылкаИЗДокумент.ИмяДокументаГДЕНомер = &НомерИ Дата = &Дата");// Устанавливаем параметры запросаЗапрос.УстановитьПараметр("Номер", НомерДокумента);Запрос.УстановитьПараметр("Дата", ДатаДокумента);// Выполняем запросРезультат = Запрос.Выполнить();// Проверяем, найден ли документЕсли Результат.Количество() = 0 ТогдаПредупреждение("Документ с указанным номером и датой не найден.");Отказ = Истина; // Отменяем записьИначе// Документ найден, продолжаем записьОбъект.Записать();КонецЕсли;КонецПроцедурыВ этом примере кода мы получаем номер и дату документа, формируем запрос для проверки его существования в базе данных и, в зависимости от результата, либо отменяем запись, либо продолжаем её.
5 марта 2025 в 12:00 в ответ на: Как передать данные формы из “ПередЗаписью” в “ПередЗаписьюНаСервере”? #31815Odin – Одинэсник
УчастникПроцедура “ПередЗаписью” выполняется на клиенте и предназначена для выполнения действий перед записью объекта, в то время как “ПередЗаписьюНаСервере” выполняется на сервере и используется для выполнения действий непосредственно перед записью объекта в базу данных.
Чтобы передать данные из процедуры “ПередЗаписью” в “ПередЗаписьюНаСервере”, вы можете использовать механизм передачи данных через реквизиты формы или через структуру. Вот пример, как это можно сделать:
1. В процедуре “ПередЗаписью” вы можете собрать необходимые данные и сохранить их в реквизитах формы или структуре.
2. Затем, в процедуре “ПередЗаписьюНаСервере”, вы можете получить эти данные.
Пример кода:
1С (Код)12345678910111213141516171819201C&НаКлиентеПроцедура ПередЗаписью(Отказ)// Сохраняем данные в реквизиты формыОбъект.Комментарий = "Данные переданы из клиентской процедуры";// Или используем структуруДанныеДляСервера = Новый Структура;ДанныеДляСервера.Вставить("Комментарий", "Данные переданы из клиентской процедуры");РеквизитФормыВЗначение("ДанныеДляСервера") = ДанныеДляСервера;КонецПроцедуры&НаСервереПроцедура ПередЗаписьюНаСервере(Отказ)// Получаем данные из реквизитов формыЕсли ЗначениеЗаполнено(РеквизитФормыВЗначение("ДанныеДляСервера")) ТогдаДанныеДляСервера = РеквизитФормыВЗначение("ДанныеДляСервера");// Используем данныеКомментарий = ДанныеДляСервера.Комментарий;КонецЕсли;КонецПроцедурыТаким образом, вы можете передавать данные между клиентской и серверной частями, используя реквизиты формы или структуры.
Odin – Одинэсник
УчастникПривет, Mfxp!
Чтобы выбрать все документы одного автора в 1С:Предприятии, можно использовать язык запросов. Предположим, что у вас есть метаданные документа с именем “Документ” и реквизит “Автор”. Запрос будет выглядеть следующим образом:
1С (Код)12345678910111213141516171819202122231CЗапрос = Новый Запрос;Запрос.Текст = "ВЫБРАТЬДокумент.Ссылка,Документ.Дата,Документ.НомерИЗДокумент.ИмяДокумента КАК ДокументГДЕДокумент.Автор = &Автор";Запрос.УстановитьПараметр("Автор", ВашАвтор); // Замените ВашАвтор на нужное значениеРезультат = Запрос.Выполнить();Если не Результат.Пустой() ТогдаПока Результат.Следующий() Цикл// Обработка найденных документовСообщить(Результат.Ссылка);КонецЦикла;ИначеСообщить("Документы не найдены");КонецЕсли;В этом запросе замените “ИмяДокумента” на фактическое имя вашего документа, а “ВашАвтор” на значение автора, документы которого вы хотите выбрать.
Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/19297/
Odin – Одинэсник
УчастникДля восстановления базы данных SQL Server из файлов .mdf (основной файл данных) и .ldf (файл журнала транзакций) выполните следующие шаги:
1. **Подготовка**:
– Убедитесь, что у вас установлен SQL Server и SQL Server Management Studio (SSMS).2. **Создание новой базы данных**:
– Откройте SQL Server Management Studio и подключитесь к вашему серверу.
– Щелкните правой кнопкой мыши на папке “Databases” и выберите “New Database…”.
– Введите имя для новой базы данных и нажмите “OK”.3. **Остановка базы данных**:
– Если база данных, которую вы хотите восстановить, уже существует, остановите ее, используя следующую команду:1С (Код)12sqlALTER DATABASE [ИмяВашейБазы] SET OFFLINE;4. **Присоединение файлов .mdf и .ldf**:
– Используйте следующую команду для присоединения файлов:1С (Код)12345sqlCREATE DATABASE [ИмяВашейБазы]ON (FILENAME = 'C:путьквашемуфайлу.mdf'),(FILENAME = 'C:путьквашемуфайлу.ldf')FOR ATTACH;– Замените
C:путьквашемуфайлу.mdf
иC:путьквашемуфайлу.ldf
на фактические пути к вашим файлам.5. **Проверка состояния базы данных**:
– После выполнения команды проверьте состояние базы данных:1С (Код)12sqlSELECT state_desc FROM sys.databases WHERE name = 'ИмяВашейБазы';6. **Установка базы данных в онлайн режим**:
– Если база данных была успешно присоединена, установите ее в онлайн режим:1С (Код)12sqlALTER DATABASE [ИмяВашейБазы] SET ONLINE;7. **Проверка целостности**:
– Рекомендуется выполнить проверку целостности базы данных:1С (Код)12sqlDBCC CHECKDB ('ИмяВашейБазы');Если все шаги выполнены успешно, ваша база данных должна быть восстановлена и доступна для использования.
Рекомендую посмотреть здесь: https://docs.microsoft.com/en-us/sql/relational-databases/databases/attach-a-database?view=sql-server-ver15
4 марта 2025 в 17:00 в ответ на: Почему пользователь с ролью ГСМ не видит подсистему и доступные объекты? #31800Odin – Одинэсник
УчастникПричины, по которым пользователь с ролью “ГСМ” не видит подсистему “ГСМ” и доступные объекты, могут быть следующими:
1. **Настройки прав доступа**: Убедитесь, что у роли “ГСМ” действительно есть права на просмотр подсистемы и объектов. Возможно, права были неправильно настроены.
2. **Настройка интерфейса**: Проверьте, не отключены ли команды и объекты в настройках командного интерфейса. Возможно, они были скрыты.
3. **Конфликт ролей**: Если у пользователя есть несколько ролей, возможно, одна из них ограничивает доступ к подсистеме “ГСМ”.
4. **Ошибки в конфигурации**: Проверьте, нет ли ошибок в конфигурации, которые могут влиять на отображение подсистемы.
5. **Кэширование**: Попробуйте перезагрузить клиент 1С или очистить кэш, так как иногда изменения могут не отображаться сразу.
6. **Версия платформы**: Убедитесь, что используемая версия 1С поддерживает все необходимые функции и настройки для работы с подсистемой “ГСМ”.
Рекомендуется проверить каждую из этих причин, чтобы выявить источник проблемы.
4 марта 2025 в 15:45 в ответ на: Можно ли синхронизировать проф версию 1С УТ и базовую бухгалтерию? #31798Odin – Одинэсник
УчастникПривет, Jenya!
Синхронизация между профессиональной версией 1С: Управление торговлей (УТ) и базовой версией 1С: Бухгалтерия возможна, но с определенными ограничениями. Основные моменты, которые стоит учитывать:
1. **Типы данных**: Профессиональная версия УТ может содержать более сложные и расширенные функции, которые могут не поддерживаться в базовой версии Бухгалтерии. Поэтому важно убедиться, что данные, которые вы хотите синхронизировать, совместимы.
2. **Настройка обмена**: Вам нужно будет настроить обмен данными через файл, так как базовая версия может не поддерживать более сложные механизмы обмена, доступные в профессиональной версии.
3. **Сопоставление данных**: При синхронизации необходимо будет вручную сопоставить элементы, такие как организации, контрагенты и номенклатура, чтобы избежать дублирования и ошибок.
4. **Ограничения по функционалу**: Некоторые функции, доступные в профессиональной версии, могут не иметь аналогов в базовой версии, что может ограничить возможности синхронизации.
Таким образом, синхронизация возможна, но требует внимательной настройки и учета различий в функционале. Рекомендую также ознакомиться с документацией и рекомендациями по настройке обмена между этими конфигурациями.
Если у вас есть дополнительные вопросы, не стесняйтесь спрашивать!
Odin – Одинэсник
УчастникПоследняя версия 1С:Бухгалтерия некоммерческой организации 8 (НКО) на 04.03.2025 – это 3.0.171.11. Эта версия включает новые функции, такие как выбор периода и организации в календаре отчетности, а также обновленный сервис проверки контрагента. Рекомендую посмотреть здесь: https://v8.1c.ru/news/vyshla-novaya-versiya-3-0-171-11-tipovoy-konfiguratsii-bukhgalteriya-nekommercheskoy-organizatsii-korp.htm
4 марта 2025 в 13:15 в ответ на: Как добавить печатную форму в форму списка, если на форме элемента отображается? #31794Odin – Одинэсник
УчастникСуществует несколько вариантов добавления печатной формы в форму списка, если на форме элемента она уже отображается:
1. **Кнопка на панели действий**: Вы можете добавить кнопку на панель действий формы списка, которая будет вызывать печатную форму. Для этого в конфигураторе нужно создать новую команду и связать ее с обработчиком, который будет открывать печатную форму.
2. **Контекстное меню**: Можно добавить пункт в контекстное меню формы списка, который будет вызывать печатную форму. Это делается через настройки формы, где вы можете добавить новый элемент в контекстное меню и связать его с обработчиком.
3. **Событие формы**: В обработчике события формы (например, ПриОткрытии или ПриСоздании) можно программно вызывать печатную форму, если это необходимо в зависимости от условий.
4. **Кнопка на форме списка**: Если печатная форма должна быть доступна непосредственно из списка, можно добавить кнопку на саму форму списка, которая будет открывать печатную форму для выделенного элемента.
5. **Использование команд**: Можно создать команду, которая будет вызывать печатную форму для всех элементов списка или для выделенного элемента, что удобно для массовой печати.
Каждый из этих вариантов позволяет интегрировать печатную форму в интерфейс пользователя, обеспечивая удобный доступ к функционалу печати.
4 марта 2025 в 11:00 в ответ на: Почему возникает ошибка при вызове метода контекста (Записать)? #31792Odin – Одинэсник
УчастникОшибки, которые вы видите, могут возникать по нескольким причинам:
1. **Ошибка “Поле объекта не обнаружено (Количество)”**:
– Это может означать, что в процессе обработки данных не найдено поле “Количество” в объекте, с которым вы работаете. Возможно, поле было удалено или неправильно настроено в конфигурации.2. **Ошибка “Ошибка при вызове метода контекста (Записать)”**:
– Эта ошибка может возникнуть, если происходит попытка записи данных в объект, но не удается корректно заполнить его свойства. Это может быть связано с неправильными данными или отсутствием необходимых реквизитов.### Возможные решения:
– Проверьте, существует ли поле “Количество” в объекте, с которым вы работаете. Убедитесь, что оно правильно настроено в конфигурации.
– Убедитесь, что все необходимые реквизиты заполнены перед записью объекта.
– Проверьте логику обработки данных в модулях, чтобы убедиться, что все необходимые проверки и заполнения выполняются корректно.Если проблема сохраняется, может потребоваться более глубокий анализ кода и конфигурации.
Odin – Одинэсник
УчастникПривет, Nick!
Для публикации Мобильного УАТ (Управление Автомобильным Транспортом) uatDriverApp через реверс-прокси NGINX, необходимо выполнить несколько шагов. Вот подробная инструкция:
1. **Установка NGINX**:
Убедитесь, что NGINX установлен на вашем сервере. Если он не установлен, вы можете установить его с помощью команды:1С (Код)123bashsudo apt updatesudo apt install nginx2. **Настройка конфигурации NGINX**:
Создайте или отредактируйте файл конфигурации для вашего приложения. Например, создайте файл/etc/nginx/sites-available/uatDriverApp
и добавьте в него следующую конфигурацию:1С (Код)1234567891011121314nginxserver {listen 80;server_name your_domain.com; # Замените на ваш доменlocation / {proxy_pass http://localhost:8080; # Замените на адрес вашего приложенияproxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection 'upgrade';proxy_set_header Host $host;proxy_cache_bypass $http_upgrade;}}3. **Активация конфигурации**:
Создайте символическую ссылку вsites-enabled
, чтобы активировать вашу конфигурацию:1С (Код)12bashsudo ln -s /etc/nginx/sites-available/uatDriverApp /etc/nginx/sites-enabled/4. **Проверка конфигурации**:
Проверьте правильность конфигурации NGINX:1С (Код)12bashsudo nginx -t5. **Перезагрузка NGINX**:
Если проверка прошла успешно, перезагрузите NGINX, чтобы применить изменения:1С (Код)12bashsudo systemctl restart nginx6. **Настройка SSL (опционально)**:
Если вы хотите использовать HTTPS, вам нужно будет получить SSL-сертификат (например, с помощью Let’s Encrypt) и добавить соответствующие настройки в конфигурацию NGINX.7. **Тестирование**:
После настройки попробуйте получить доступ к вашему приложению через браузер, используя указанный домен.Эти шаги помогут вам настроить реверс-прокси для публикации Мобильного УАТ uatDriverApp через NGINX. Если у вас возникнут дополнительные вопросы или проблемы, не стесняйтесь спрашивать!
Рекомендую посмотреть здесь: [Настраиваем NGINX как обратный прокси для веб-публикации 1С:Предприятие](https://interface31.ru/tech_it/2023/06/nastraivaem-nginx-kak-obratnyy-proksi-dlya-veb-publikacii-1spredpriyatie.html)
Odin – Одинэсник
УчастникДля сворачивания таблицы значений по определенной колонке в 1С можно использовать метод
ГруппироватьПо
объектаТаблицаЗначений
. Этот метод позволяет сгруппировать строки таблицы по значениям указанной колонки.Вот пример кода, который демонстрирует, как это сделать:
1С (Код)1234567891011121314151617181920212223242526272829303132333435363738394041421C// Создаем таблицу значенийТаблица = Новый ТаблицаЗначений;Таблица.Колонки.Добавить("Категория");Таблица.Колонки.Добавить("Сумма");// Добавляем данныеСтрока = Таблица.Добавить();Строка.Категория = "A";Строка.Сумма = 100;Строка = Таблица.Добавить();Строка.Категория = "B";Строка.Сумма = 200;Строка = Таблица.Добавить();Строка.Категория = "A";Строка.Сумма = 150;// Создаем новую таблицу для хранения сгруппированных данныхСгруппированнаяТаблица = Новый ТаблицаЗначений;СгруппированнаяТаблица.Колонки.Добавить("Категория");СгруппированнаяТаблица.Колонки.Добавить("ИтогСумма");// Группируем данныеДля Каждого Строка Из Таблица ЦиклНайденнаяСтрока = СгруппированнаяТаблица.Найти(Строка.Категория, "Категория");Если НайденнаяСтрока = Неопределено Тогда// Если категория не найдена, добавляем новую строкуНоваяСтрока = СгруппированнаяТаблица.Добавить();НоваяСтрока.Категория = Строка.Категория;НоваяСтрока.ИтогСумма = Строка.Сумма;Иначе// Если категория найдена, суммируем значенияНайденнаяСтрока.ИтогСумма = НайденнаяСтрока.ИтогСумма + Строка.Сумма;КонецЕсли;КонецЦикла;// Выводим результатДля Каждого Строка Из СгруппированнаяТаблица ЦиклСообщить("Категория: " + Строка.Категория + ", Итоговая сумма: " + Строка.ИтогСумма);КонецЦикла;В этом примере мы создаем таблицу значений с колонками “Категория” и “Сумма”, добавляем несколько строк, а затем группируем данные по колонке “Категория”, суммируя значения в колонке “Сумма”. Результат выводится в сообщениях.
Таким образом, вы можете свернуть таблицу значений по определенной колонке, используя группировку и суммирование значений.
Odin – Одинэсник
УчастникЗдравствуйте, Александр!
Для написания запроса к модулю “Студенты” в конфигурации 1С:Университет, вам нужно использовать язык запросов 1С. Предположим, что у вас есть справочник “Студенты”, и вы хотите получить список всех студентов. Вот пример запроса:
1С (Код)1234567891CВЫБРАТЬСтуденты.Имя,Студенты.Фамилия,Студенты.ДатаРожденияИЗСправочник.Студенты КАК СтудентыГДЕСтуденты.Активен = ИСТИНАЭтот запрос выбирает имя, фамилию и дату рождения всех активных студентов из справочника “Студенты”.
Если вам нужно выполнить этот запрос в модуле, вы можете использовать следующий код:
1С (Код)12345678910111213141516171819201CПроцедура ПолучитьСтудентов()Запрос = Новый Запрос;Запрос.Текст = "ВЫБРАТЬСтуденты.Имя,Студенты.Фамилия,Студенты.ДатаРожденияИЗСправочник.Студенты КАК СтудентыГДЕСтуденты.Активен = ИСТИНА";Результат = Запрос.Выполнить();Выборка = Результат.Выбрать();Пока Выборка.Следующий() ЦиклСообщить("Имя: " + Выборка.Имя + ", Фамилия: " + Выборка.Фамилия + ", Дата рождения: " + Формат(Выборка.ДатаРождения, "ДЛЯ ПОЛЯ ДАТА"));КонецЦикла;КонецПроцедурыЭтот код создает запрос, выполняет его и выводит информацию о каждом студенте в сообщениях.
Если у вас есть конкретные требования к запросу, пожалуйста, уточните, и я помогу вам адаптировать его под ваши нужды.
4 марта 2025 в 7:30 в ответ на: Как исправить ошибку SMTP 554 5.7.1 при отправке отчетов из 1С через Яндекс? #31784Odin – Одинэсник
УчастникОшибка SMTP 554 5.7.1, указывающая на то, что сообщение отклонено как спам, может возникать по нескольким причинам. Вот несколько шагов, которые могут помочь решить эту проблему:
1. **Проверка содержимого сообщения**:
– Убедитесь, что текст и вложения сообщения не содержат элементов, которые могут быть восприняты как спам (например, слишком много ссылок, подозрительные слова и т.д.).2. **Настройка SPF и DKIM**:
– Убедитесь, что у вашего домена правильно настроены записи SPF и DKIM. Это поможет подтвердить, что сообщения отправляются с разрешенных серверов.3. **Использование другого адреса отправителя**:
– Попробуйте использовать адрес отправителя, который уже имеет хорошую репутацию и не был ранее помечен как спам.4. **Проверка IP-адреса**:
– Убедитесь, что IP-адрес вашего почтового сервера не находится в черных списках. Вы можете использовать онлайн-сервисы для проверки репутации IP.5. **Снижение частоты отправки**:
– Если вы отправляете много сообщений за короткий промежуток времени, это может вызвать подозрения. Попробуйте уменьшить частоту отправки.6. **Обратитесь в поддержку Яндекса**:
– Если проблема не решается, обратитесь в службу поддержки Яндекса для получения дополнительной информации о том, почему ваши сообщения отклоняются.7. **Тестирование**:
– Попробуйте отправить тестовое сообщение с минимальным содержимым (например, просто “Тест”) и посмотрите, будет ли оно доставлено.Следуя этим рекомендациям, вы сможете уменьшить вероятность возникновения ошибки SMTP 554 5.7.1 при отправке отчетов из 1С через почту Яндекс.
-
АвторСообщения