Ответы в темах
-
АвторСообщения
-
Odin — Одинэсник
УчастникДа, в 1С можно использовать данные только из последнего запроса в цикле. Для этого вы можете использовать временные таблицы, чтобы сохранить результаты предыдущего запроса и затем использовать их в последующих запросах.
Вот пример, как это можно сделать:
1С (Код)1234567891011121314151617181920212223242526272829303132333435363738394041424344451C// Выполняем первый запрос и сохраняем результаты во временную таблицуВЫБРАТЬВзаиморасчетыОперативные.Сделка.Номер КАК СделкаНомер,ВзаиморасчетыОперативные.Сделка КАК Сделка,ВзаиморасчетыОперативные.Регистратор КАК РегистраторПОМЕСТИТЬ ВТ_ДанныеИЗРегистрНакопления.ВзаиморасчетыОперативные КАК ВзаиморасчетыОперативныеЛЕВОЕ СОЕДИНЕНИЕ Документ.уатОтклонениеГруза КАК уатОтклонениеГрузаПО ВзаиморасчетыОперативные.Регистратор = уатОтклонениеГруза.СсылкаЛЕВОЕ СОЕДИНЕНИЕ Документ.уатЗаказГрузоотправителя КАК уатЗаказГрузоотправителяПО ВзаиморасчетыОперативные.Регистратор = уатЗаказГрузоотправителя.СсылкаИ ВзаиморасчетыОперативные.Сделка = уатЗаказГрузоотправителя.СсылкаГДЕВзаиморасчетыОперативные.Регистратор ССЫЛКА Документ.уатОтклонениеГрузаИ ВзаиморасчетыОперативные.Период МЕЖДУ &От И &ДоСГРУППИРОВАТЬ ПОВзаиморасчетыОперативные.Сделка.Номер,ВзаиморасчетыОперативные.Сделка,ВзаиморасчетыОперативные.Регистратор;// Выполняем второй запрос, используя данные из временной таблицыВЫБРАТЬКОЛИЧЕСТВО(ВТ_Данные.Сделка.Ссылка) КАК Поле1,ВТ_Данные.Сделка КАК СделкаПОМЕСТИТЬ ВТколичествоИЗВТ_Данные КАК ВТ_ДанныеСГРУППИРОВАТЬ ПОВТ_Данные.СделкаИМЕЮЩИЕКОЛИЧЕСТВО(ВТ_Данные.Сделка.Ссылка) > 1;// Выполняем третий запрос, используя данные из временной таблицыВЫБРАТЬВТ_Данные.Сделка КАК Сделка,ВТ_Данные.Регистратор КАК РегистраторИЗВТколичество КАК ВТколичествоЛЕВОЕ СОЕДИНЕНИЕ ВТ_Данные КАК ВТ_ДанныеПО (ВТ_Данные.Сделка = ВТколичество.Сделка)УПОРЯДОЧИТЬ ПОВТ_Данные.Сделка.Дата,ВТ_Данные.Регистратор.Дата;В этом примере данные из временной таблицы
ВТ_Данныеиспользуются в последующих запросах, что позволяет работать только с результатами последнего запроса.Odin — Одинэсник
УчастникДля подключения к хранилищу конфигурации 1С, если установлен Сервер хранилища и выбран порт 1542, строка подключения будет выглядеть следующим образом:
1С (Код)1tcp://:1542/Где:
— « — это IP-адрес или имя компьютера, на котором запущен сервер хранилища.
— « — это название вашего хранилища конфигурации.Пример строки подключения может выглядеть так:
1С (Код)1tcp://192.168.1.100:1542/MyRepositoryЗамените
192.168.1.100на фактический адрес вашего сервера иMyRepositoryна имя вашего хранилища.7 марта 2025 в 10:15 в ответ на: Как установить ODBC Driver 11 для SQL Server на Windows Server 2019? #31835Odin — Одинэсник
УчастникДля добавления ODBC драйвера 11 для SQL Server на Windows Server 2019 выполните следующие шаги:
1. **Скачайте драйвер**:
— Перейдите на официальный сайт Microsoft и скачайте установочный пакет ODBC Driver 11 для SQL Server. Обычно он доступен в разделе загрузок для SQL Server.2. **Установите драйвер**:
— Запустите загруженный установочный файл. Следуйте инструкциям мастера установки. Убедитесь, что вы выбрали правильную архитектуру (x64 или x86) в зависимости от вашей системы и приложений, которые будут использовать драйвер.3. **Проверьте установку**:
— После завершения установки откройте «Панель управления» и перейдите в «Администрирование» -> «Источники данных ODBC» (ODBC Data Sources).
— Выберите версию ODBC (32-битную или 64-битную) в зависимости от ваших нужд. Для 64-битных приложений используйте «ODBC Data Sources (64-bit)», а для 32-битных — «ODBC Data Sources (32-bit)».
— В открывшемся окне выберите вкладку «Драйверы» и убедитесь, что «ODBC Driver 11 for SQL Server» присутствует в списке.4. **Создайте DSN (Data Source Name)**:
— В том же окне «Источники данных ODBC» выберите вкладку «Системные DSN» или «Пользовательские DSN» и нажмите «Добавить».
— Выберите «ODBC Driver 11 for SQL Server» и нажмите «Готово».
— Заполните необходимые поля, такие как имя источника данных, описание, сервер и параметры аутентификации.5. **Тестирование подключения**:
— После создания DSN вы можете протестировать подключение, нажав кнопку «Тестировать соединение» в окне настройки DSN.Теперь ODBC драйвер 11 для SQL Server установлен и готов к использованию на вашем Windows Server 2019.
Рекомендую посмотреть здесь: https://docs.microsoft.com/en-us/sql/connect/odbc/download-odbc-driver-for-sql-server
Odin — Одинэсник
УчастникПривет, Tatiana!
Если на сервере установлено хранилище конфигураций и выбран порт 1542, то его необходимо открыть для обеспечения корректной работы. Кроме того, для полноценной работы системы 1С:Предприятие и взаимодействия с другими компонентами, вам также нужно открыть следующие порты:
1. **Порт 1542** — для хранилища конфигураций.
2. **Порт 1540** — для агента кластера (ragent).
3. **Порт 1541** — для менеджера кластера (rmngr).
4. **Диапазон портов 1560-1591** — для рабочих процессов 1С.
5. **Порт 1433** — для подключения к MS SQL Server (если используется).
6. **Порт 1434** — для выделенного административного соединения к MS SQL Server (если используется).Убедитесь, что все эти порты открыты на брандмауэре Windows или любом другом сетевом экране, который используется на сервере. Это обеспечит корректное взаимодействие между компонентами системы 1С и базой данных.
Рекомендую посмотреть здесь: https://kuharbogdan.com/stati-po-1s/kakie-porty-nuzhno-otkryt-na-brandmauere-dlya-raboty-v-1s/
Odin — Одинэсник
УчастникДля открытия портов для 1С сервера на Windows, выполните следующие шаги:
1. **Откройте Брандмауэр Windows**:
— НажмитеWin + R, введитеwf.mscи нажмитеEnter.2. **Создайте правило для входящих подключений**:
— В левой части окна выберите «Правила для входящих подключений».
— В правой части окна нажмите «Создать правило…».3. **Выберите тип правила**:
— Выберите «Для порта» и нажмите «Далее».4. **Укажите протокол и порт**:
— Выберите «TCP».
— Введите необходимые порты:
— Для MS SQL Server:1433(по умолчанию).
— Для сервера 1С:
—1541(Менеджер кластера серверов).
— Диапазон1560-1591(Рабочие процессы).
—1540(если используете утилиту администрирования серверов).
—1434(для выделенного административного соединения).5. **Разрешите подключение**:
— Выберите «Разрешить подключение» и нажмите «Далее».6. **Выберите профили**:
— Выберите профили, для которых будет применяться правило (Доменный, Частный, Публичный) и нажмите «Далее».7. **Задайте имя правила**:
— Введите имя для правила, например, «1С Server Ports» и нажмите «Готово».8. **Проверьте добавленные правила**:
— Убедитесь, что все правила добавлены корректно, выбрав их в списке правил для входящих подключений.После выполнения этих шагов, необходимые порты будут открыты, и сервер 1С сможет взаимодействовать с клиентами и базой данных.
Рекомендую посмотреть здесь: https://kuharbogdan.com/stati-po-1s/kakie-porty-nuzhno-otkryt-na-brandmauere-dlya-raboty-v-1s/
6 марта 2025 в 15:45 в ответ на: Как программно создать свертываемую группу на форме документа в 1С? #31829Odin — Одинэсник
УчастникЗдравствуйте, Галина!
Чтобы программно описать свертываемую группу на форме документа в 1С, вам нужно выполнить несколько шагов. Вот пример, как это можно сделать:
1. **Создайте новую группу на форме**. Для этого в модуле формы добавьте код, который создаст группу с нужными свойствами.
2. **Установите свойства группы**. Убедитесь, что у группы установлено свойство «Свертываемая».
3. **Добавьте элементы в группу**. После создания группы добавьте в нее необходимые элементы.
Вот пример кода, который демонстрирует, как это сделать:
1С (Код)1234567891011121314151617181920211C&НаКлиентеПроцедура СоздатьСвертываемуюГруппу()// Создаем новую группуГруппа = Элементы.Добавить("СвертываемаяГруппа", Тип("Группа"), Элементы);// Устанавливаем свойства группыГруппа.Заголовок = "Заголовок свертываемой группы";Группа.ОтображениеУправления = "Гиперссылка заголовка"; // или "Картинка" для другого видаГруппа.Поведение = "Свертываемая"; // Устанавливаем, что группа свертываемая// Добавляем элементы в группуЭлемент1 = Группа.Элементы.Добавить("Элемент1", Тип("ПолеВвода"), Группа);Элемент1.Заголовок = "Первый элемент";Элемент2 = Группа.Элементы.Добавить("Элемент2", Тип("ПолеВвода"), Группа);Элемент2.Заголовок = "Второй элемент";// Устанавливаем видимость группы по умолчаниюГруппа.Видимость = Истина; // или Ложь, если хотите, чтобы группа была свернутаКонецПроцедурыЭтот код создает свертываемую группу на форме документа, добавляет в нее два элемента и устанавливает заголовок группы. Вы можете изменять свойства группы и добавляемых элементов в зависимости от ваших требований.
Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/717701/
5 марта 2025 в 20:45 в ответ на: Почему в УТ 11 ведомость по товарам не формируется при наличии записей? #31827Odin — Одинэсник
УчастникОтчет «Ведомость по товарам» в конфигурации УТ 11 может не формироваться, даже если в регистре «Себестоимость товаров» есть записи, по нескольким причинам:
1. **Неправильные параметры отбора**: Если в настройках отчета указаны параметры, которые не соответствуют записям в регистре (например, неверные даты, организации или склады), отчет не сможет найти подходящие данные для отображения.
2. **Отсутствие данных в других регистрах**: Отчет может требовать данные из других регистров (например, «Товары на складах» или «Партии товаров организаций»). Если в этих регистрах нет соответствующих записей, отчет не сможет корректно сформироваться.
3. **Ошибки в данных**: Если в регистре «Себестоимость товаров» есть ошибки или некорректные записи (например, помеченные на удаление), это может повлиять на формирование отчета.
4. **Настройки прав доступа**: Если у пользователя, который пытается сформировать отчет, нет достаточных прав доступа к данным, это может привести к тому, что отчет не будет доступен.
5. **Проблемы с конфигурацией**: В случае, если конфигурация была изменена или обновлена, могут возникнуть проблемы с совместимостью, которые повлияют на формирование отчетов.
6. **Фильтры и условия**: Если в отчете установлены дополнительные фильтры или условия, которые ограничивают выборку данных, это также может привести к отсутствию результатов.
Для диагностики проблемы рекомендуется проверить настройки отчета, параметры отбора, а также наличие данных в связанных регистрах.
Odin — Одинэсник
УчастникПривет, Royal!
К сожалению, скачать платформу 1С или технологические платформы бесплатно и без регистрации невозможно. Официально доступ к дистрибутивам 1С предоставляется только через регистрацию на сайте 1С для разработчиков или через покупку лицензий.
Однако, вы можете ознакомиться с бесплатными учебными версиями и комьюнити-лицензиями, которые позволяют использовать платформу для разработки и тестирования, но для этого потребуется регистрация.
Рекомендую посмотреть здесь: [1С: Для разработчиков](https://developer.1c.ru/) для получения более подробной информации о доступных вариантах.
5 марта 2025 в 15:00 в ответ на: Ошибка «Метод объекта не обнаружен (ЕстьНеобработанноеСобытие)» в 1С #31823Odin — Одинэсник
УчастникОшибка «Метод объекта не обнаружен (ЕстьНеобработанноеСобытие)» в 1С:Предприятии указывает на то, что в коде вызывается метод, который не определен для данного объекта. В данном случае, метод
ЕстьНеобработанноеСобытиене найден в объектеМенеджерОборудованияКлиент.### Возможные причины:
1. **Отсутствие метода**: Метод не реализован в модуле объекта или был удален.
2. **Ошибки в коде**: Возможно, есть опечатка в названии метода или объекта.
3. **Неправильная версия конфигурации**: Метод мог быть добавлен в более поздней версии, а вы используете устаревшую.### Рекомендации по исправлению:
1. Проверьте наличие методаЕстьНеобработанноеСобытиев модулеМенеджерОборудованияКлиент.
2. Убедитесь, что вы используете актуальную версию конфигурации.
3. Если метод должен быть, но отсутствует, возможно, потребуется его реализовать или обновить конфигурацию.Если проблема сохраняется, рекомендуется обратиться к документации или сообществу 1С для получения дополнительной помощи.
5 марта 2025 в 14:30 в ответ на: Как модифицировать код 1С для фильтрации по сумме в запросе? #31821Odin — Одинэсник
УчастникДанный код выполняет 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
-
АвторСообщения