Как результат выборки запроса поместить в отчёт?
Добрый день, подскажите не могу сообразить как поместить данные в отчёт, нужно полученный результат выборки в разрезе конкретного продавца в каждом его дне работы посмотреть какие категории клиентов у него были и какие, какие услугами пользовались.
При такой конструкции у меня почему-то если выбрать период в месяц выходит только одна дата. И если выбрать один день общее число дней равняется 3 как это исправить?
"ВЫБРАТЬ
| РаботаОбороты.Период,
| СУММА(РаботаОбороты.ПокраскаОборот),
| СУММА(РаботаОбороты.ЗаменаКолесаОборот),
| СУММА(РаботаОбороты.УборкаСалонаОборот),
| СУММА(РаботаОбороты.ЗаменаМаслаОборот),
| СУММА(РаботаОбороты.ПроверкаДавленияШинахОборот),
| СУММА(РаботаОбороты.ЗаменаМаслаКоробкеОборот),
| СУММА(РаботаОбороты.ЗаменаМаслаРаздаткеОборот),
| СУММА(РаботаОбороты.ЗаменаМаслаПереднийМостОборот),
| СУММА(РаботаОбороты.ЗаменаМаслаЗаднийМостОборот),
| СУММА(РаботаОбороты.ЗаменаТормознойЖидкостиОборот),
| СУММА(РаботаОбороты.ЗаливОмывателяОборот),
| СУММА(РаботаОбороты.ЗаменаГРМОборот),
| СУММА(РаботаОбороты.ЗаменаЛампочекДальнегоСветаОборот),
| СУММА(РаботаОбороты.ЗаменаЛампочекБлижнегоСветаОборот),
| СУММА(РаботаОбороты.ЗменаЛампочекПоворотаОборот),
| СУММА(РаботаОбороты.ЗаменаПротивотуманныхФарОборот)
|ПОМЕСТИТЬ
| ВремТабАвтоРабота
|ИЗ
| РегистрНакопления.Работа.Обороты(&Дата1, &Дата2, ДЕНЬ, ) КАК РаботаОбороты
|ГДЕ
| РаботаОбороты.Продавец = &Продавец
|СГРУППИРОВАТЬ ПО
| РаботаОбороты.Период
|;
|ВЫБРАТЬ
| РаботаОбороты.Период,
| РаботаОбороты.КатегорияКлиента,
| СУММА(РаботаОбороты.БронированоАтомобилейОборот)
|ПОМЕСТИТЬ
| ВремТабБронировано
|ИЗ
| РегистрНакопления.Работа.Обороты(&Дата1, &Дата2, ДЕНЬ, ) КАК РаботаОбороты
|СГРУППИРОВАТЬ ПО
| РаботаОбороты.Период,
| РаботаОбороты.КатегорияКлиента
|;
|ВЫБРАТЬ
| РаботаОбороты.Период,
| РаботаОбороты.КатегорияКлиента,
| СУММА(РаботаОбороты.ЗаменаРадиатораОборот) КАК ЗаменаРадиатораОборот,
| СУММА(РаботаОбороты.ЗаменаГенератораОборот) КАК ЗаменаГенератораОборот
|ПОМЕСТИТЬ
| ВремТабКодЗапчастей
|ИЗ
| РегистрНакопления.Работа.Обороты(&Дата1, &Дата2, ДЕНЬ, ) КАК РаботаОбороты
|ГДЕ
| РаботаОбороты.Продавец = &Продавец И НЕ РаботаОбороты.КодЗапчастей ПОДОБНО ""%Q%""
|СГРУППИРОВАТЬ ПО
| РаботаОбороты.Период,
| РаботаОбороты.КатегорияКлиента
|;
|ВЫБРАТЬ
| РаботаОбороты.Период,
| РаботаОбороты.КатегорияКлиента,
| СУММА(РаботаОбороты.ДиагностикаОборот),
| СУММА(РаботаОбороты.ОставилАвтомобилНаРемонтОборот),
| СУММА(РаботаОбороты.КоличествоУслугОборот),
| СУММА(РаботаОбороты.БаллыПродовцаОборот)
|ПОМЕСТИТЬ
| ВремТабОбщееЧислоВсехКлиентов
|ИЗ
| РегистрНакопления.Работа.Обороты(&Дата1, &Дата2, ДЕНЬ, ) КАК РаботаОбороты
|ГДЕ
| РаботаОбороты.Продавец = &Продавец
|СГРУППИРОВАТЬ ПО
| РаботаОбороты.Период,
| РаботаОбороты.КатегорияПациента
|;
|ВЫБРАТЬ
| РаботаОбороты.Период,
| РаботаОбороты.КатегорияКлиента,
| ВремТабОбщееЧислоВсехКлиентов.Период,
| ВремТабОбщееЧислоВсехКлиентов.КатегорияКлиента,
| ЕСТЬNULL (ВремТабОбщееЧислоВсехКлиентов.ДиагностикаОборот КОНЕЦ КАК ДиагностикаОборот, 0),
| ЕСТЬNULL (ИНАЧЕ ВремТабОбщееЧислоВсехКлиентов.ОставилАвтомобилНаРемонтОборот , 0) КАК ОставилАвтомобилНаРемонтОборот,
| ЕСТЬNULL (ВремТабОбщееЧислоВсехКлиентов.КоличествоУслугОборот, 0) КАК КоличествоУслугОборот,
| ЕСТЬNULL (ВремТабОбщееЧислоВсехКлиентов.БаллыПродовцаОборот, 0) КАК БаллыПродовцаОборот,
| ВремТабКодЗапчастей.Период,
| ВремТабКодЗапчастей.КатегорияКлиента,
| ЕСТЬNULL (ВремТабКодЗапчастей.ЗаменаРадиатораОборот, 0) КАК ЗаменаРадиатораОборот,
| ЕСТЬNULL (ВремТабКодЗапчастей.ЗаменаГенератораОборот, 0) КАК ЗаменаГенератораОборот,
| ВремТабБронировано.Период,
| ВремТабБронировано.КатегорияКлиента,
| ЕСТЬNULL (ВремТабБронировано.БронированоАтомобилейОборот, 0) КАК БронированоАтомобилейОборот,
| ВремТабАвтоРабота.Период,
| ЕСТЬNULL (ВремТабАвтоРабота.ПокраскаОборот, 0) КАК ПокраскаОборот,
| ЕСТЬNULL (ВремТабАвтоРабота.ЗаменаКолесаОборот, 0) КАК ЗаменаКолесаОборот,
| ЕСТЬNULL (ВремТабАвтоРабота.УборкаСалонаОборот, 0) КАК УборкаСалонаОборот,
| ЕСТЬNULL (ВремТабАвтоРабота.ЗаменаМаслаОборот, 0) КАК ЗаменаМаслаОборот,
| ЕСТЬNULL (ВремТабАвтоРабота.ПроверкаДавленияШинахОборот, 0) КАК ПроверкаДавленияШинахОборот,
| ЕСТЬNULL (ВремТабАвтоРабота.ЗаменаМаслаКоробкеОборот, 0) КАК ЗаменаМаслаКоробкеОборот,
| ЕСТЬNULL (ВремТабАвтоРабота.ЗаменаМаслаРаздаткеОборот, 0) КАК ЗаменаМаслаРаздаткеОборот,
| ЕСТЬNULL (ВремТабАвтоРабота.ЗаменаМаслаПереднийМостОборот, 0) КАК ЗаменаМаслаПереднийМостОборот,
| ЕСТЬNULL (ВремТабАвтоРабота.ЗаменаМаслаЗаднийМостОборот, 0) КАК ЗаменаМаслаЗаднийМостОборот,
| ЕСТЬNULL (ВремТабАвтоРабота.ЗаменаТормознойЖидкостиОборот, 0) КАК ЗаменаТормознойЖидкостиОборот,
| ЕСТЬNULL (ВремТабАвтоРабота.ЗаливОмывателяОборот, 0) КАК ЗаливОмывателяОборот,
| ЕСТЬNULL (ВремТабАвтоРабота.ЗаменаГРМОборот, 0) КАК ЗаменаГРМОборот,
| ЕСТЬNULL (ВремТабАвтоРабота.ЗаменаЛампочекДальнегоСветаОборот, 0) КАК ЗаменаЛампочекДальнегоСветаОборот,
| ЕСТЬNULL (ВремТабАвтоРабота.ЗаменаЛампочекБлижнегоСветаОборот, 0) КАК ЗаменаЛампочекБлижнегоСветаОборот,
| ЕСТЬNULL (ВремТабАвтоРабота.ЗменаЛампочекПоворотаОборот, 0) КАК ЗменаЛампочекПоворотаОборот,
| ЕСТЬNULL (ВремТабАвтоРабота.ЗаменаПротивотуманныхФарОборот, 0) КАК ЗаменаПротивотуманныхФарОборот
|ИЗ
| РегистрНакопления.Работа.Обороты(&Дата1, &Дата2, ДЕНЬ, ) КАК РаботаОбороты
|ЛЕВОЕ СОЕДИНЕНИЕ
| ВремТабОбщееЧислоВсехКлиентов КАК ВремТабОбщееЧислоВсехКлиентов
|ПО
| (РаботаОбороты.Период = ВремТабОбщееЧислоВсехКлиентов.Период
| И
| РаботаОбороты.КатегорияКлиента = ВремТабОбщееЧислоВсехКлиентов.КатегорияКлиента)
|ЛЕВОЕ СОЕДИНЕНИЕ
| ВремТабКодЗапчастей КАК ВремТабКодЗапчастей
|ПО
| (РаботаОбороты.Период = ВремТабКодЗапчастей.Период
| И
| РаботаОбороты.КатегорияКлиента = ВремТабКодЗапчастей.КатегорияКлиента)
|ЛЕВОЕ СОЕДИНЕНИЕ
| ВремТабБронировано КАК ВремТабБронировано
|ПО
| (РаботаОбороты.Период = ВремТабБронировано.Период
| И
| РаботаОбороты.КатегорияПациента = ВремТабБронировано.КатегорияКлиента)
|ЛЕВОЕ СОЕДИНЕНИЕ
| ВремТабАвтоРабота КАК ВремТабАвтоРабота
|ПО
| (РаботаОбороты.Период = ВремТабАвтоРабота.Период)
|ГДЕ
| РаботаОбороты.Продавец = &Продавец";
Запрос.УстановитьПараметр("Продавец", Продавец);
Запрос.УстановитьПараметр("Дата1", НачалоДня(Дата1));
Запрос.УстановитьПараметр("Дата2", НачалоДня(Дата2));
Выборка = Запрос.Выполнить().Выбрать();
ТабДок = Новый ТабличныйДокумент;
Макет = Отчеты.УчётаРаботыПродавца.ПолучитьМакет("МакетОтчёт");
МакетОтчёт = ЭтотОбъект.ПолучитьМакет(МакетОтчёт);
МакетОтчёт.Параметры.Дата1 = Формат(Дата1, "ДЛФ=D");
МакетОтчёт.Параметры.Дата2 = Формат(Дата2, "ДЛФ=D");
Шапка = Макет.ПолучитьОбласть("Шапка");
СтрокаОтчёта = Макет.ПолучитьОбласть("Строка");
Подвал = Макет.ПолучитьОбласть("Подвал");
Шапка.Параметры.Дата1 = Дата1;
Шапка.Параметры.Дата2 = Дата2;
Шапка.Параметры.Продавец = Строка(Продавец) + " " + Продавец.Рейтинг;
ТабДок.Вывести(Шапка);
Пока Выборка.Следующий() Цикл
КоличествоДней = КоличествоДней + ДеньРаботы;
СтрокаОтчёта.Параметры.ЧислаМесяца = Лев(Выборка.Период, 2);
Если "ВИП- клиент" = Строка(Выборка.КатегорияКлиента) Тогда
ВИПклиент = ВИПклиент + 1;
СтрокаОтчёта.Параметры.ВИПклиент = ВИПклиент;
ИначеЕсли "Постоянный клиент" = Строка(Выборка.КатегорияКлиента) Тогда
ПостоянныйКлиент = ПостоянныйКлиент + 1;
СтрокаОтчёта.Параметры.ПостоянныйКлиент = ПостоянныйКлиент;
ИначеЕсли "Клиент" = Строка(Выборка.КатегорияКлиента) Тогда
Клиент = Клиент + 1;
СтрокаОтчёта.Параметры.Клиент = Клиент;
КонецЕсли;
КонецЦикла;
ТабДок.Вывести(СтрокаОтчёта);
ПоказатьПри такой конструкции у меня почему-то если выбрать период в месяц выходит только одна дата. И если выбрать один день общее число дней равняется 3 как это исправить?
По теме из базы знаний
- Алгоритмы с решениями для экзамена Специалист УТ 11.1
- "Меньше копипаста!", или как Вася универсальную процедуру писал
- Сервис регистрации ошибок 1С (пример создания)
- Сквозной пример задачи оперативного учета (ОУ) при подготовке к экзамену "1С:Специалист" по платформе
- Кейс по получению большой выборки данных в обработке порционно
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Получается вот такой код и такой отчет.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
// Отключаем стандартную обработку СКД
СтандартнаяОбработка = Ложь;
// Получаем параметры из настроек компоновки
КомпоновщикНастроек.ЗагрузитьНастройки(КомпоновщикНастроек.ПолучитьНастройки());
Параметры = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы;
// Получаем значения параметров
ПараметрПериод = Параметры.Найти("Период").Значение;
Дата1 = ПараметрПериод.ДатаНачала;
Дата2 = ПараметрПериод.ДатаОкончания;
Продавец = Параметры.Найти("Продавец").Значение;
Если НЕ ЗначениеЗаполнено(Продавец) Тогда
ВызватьИсключение("Не заполнен продавец!");
КонецЕсли;
ДокументРезультат.Очистить();
// Получаем данные для отчета
ТабДок = СформироватьОтчет(Дата1, Дата2, Продавец);
// Выводим результат в документ
ДокументРезультат.Вывести(ТабДок);
КонецПроцедуры
Функция СформироватьОтчет(Дата1, Дата2, Продавец)
// Создаем запрос для получения данных
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| РаботаОбороты.Период КАК Период,
| РаботаОбороты.КатегорияКлиента КАК КатегорияКлиента,
| РаботаОбороты.ПокраскаОборот КАК Покраска,
| РаботаОбороты.ЗаменаКолесаОборот КАК ЗаменаКолеса,
| РаботаОбороты.УборкаСалонаОборот КАК УборкаСалона,
| РаботаОбороты.ЗаменаМаслаОборот КАК ЗаменаМасла,
| РаботаОбороты.ПроверкаДавленияШинахОборот КАК ПроверкаДавленияШинах,
| РаботаОбороты.ЗаменаМаслаКоробкеОборот КАК ЗаменаМаслаКоробке,
| РаботаОбороты.ЗаменаМаслаРаздаткеОборот КАК ЗаменаМаслаРаздатке,
| РаботаОбороты.ЗаменаМаслаПереднийМостОборот КАК ЗаменаМаслаПереднийМост,
| РаботаОбороты.ЗаменаМаслаЗаднийМостОборот КАК ЗаменаМаслаЗаднийМост,
| РаботаОбороты.ЗаменаТормознойЖидкостиОборот КАК ЗаменаТормознойЖидкости,
| РаботаОбороты.ЗаливОмывателяОборот КАК ЗаливОмывателя,
| РаботаОбороты.ЗаменаГРМОборот КАК ЗаменаГРМ,
| РаботаОбороты.ЗаменаЛампочекДальнегоСветаОборот КАК ЗаменаЛампочекДальнегоСвета,
| РаботаОбороты.ЗаменаЛампочекБлижнегоСветаОборот КАК ЗаменаЛампочекБлижнегоСвета,
| РаботаОбороты.ЗменаЛампочекПоворотаОборот КАК ЗменаЛампочекПоворота,
| РаботаОбороты.ЗаменаПротивотуманныхФарОборот КАК ЗаменаПротивотуманныхФар,
| РаботаОбороты.БронированоАтомобилейОборот КАК БронированоАтомобилей,
| РаботаОбороты.ЗаменаРадиатораОборот КАК ЗаменаРадиатора,
| РаботаОбороты.ЗаменаГенератораОборот КАК ЗаменаГенератора,
| РаботаОбороты.ДиагностикаОборот КАК Диагностика,
| РаботаОбороты.ОставилАвтомобилНаРемонтОборот КАК ОставилАвтомобилНаРемонт,
| РаботаОбороты.КоличествоУслугОборот КАК КоличествоУслуг,
| РаботаОбороты.БаллыПродовцаОборот КАК БаллыПродовца
|ИЗ
| РегистрНакопления.Работа.Обороты(&Дата1, &Дата2, ДЕНЬ, Продавец = &Продавец) КАК РаботаОбороты
|
|УПОРЯДОЧИТЬ ПО
| РаботаОбороты.Период,
| РаботаОбороты.КатегорияКлиента";
Запрос.УстановитьПараметр("Продавец", Продавец);
Запрос.УстановитьПараметр("Дата1", НачалоДня(Дата1));
Запрос.УстановитьПараметр("Дата2", КонецДня(Дата2));
Выборка = Запрос.Выполнить().Выбрать();
// Заполняем табличный документ
ТабДок = Новый ТабличныйДокумент;
ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
ТабДок.АвтоМасштаб = Истина;
ТабДок.КлючПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_УчётаРаботыПродавца";
Макет = ПолучитьМакет("МакетОтчет");
// Получаем области макета
Шапка = Макет.ПолучитьОбласть("Шапка");
ШапкаДня = Макет.ПолучитьОбласть("ШапкаДня");
СтрокаКатегории = Макет.ПолучитьОбласть("СтрокаКатегории");
ПодвалДня = Макет.ПолучитьОбласть("ПодвалДня");
Подвал = Макет.ПолучитьОбласть("Подвал");
// Заполняем параметры шапки
Шапка.Параметры.Дата1 = Формат(Дата1, "ДЛФ=D");
Шапка.Параметры.Дата2 = Формат(Дата2, "ДЛФ=D");
Шапка.Параметры.Продавец = Строка(Продавец);
Шапка.Параметры.Рейтинг = Продавец.Рейтинг;
// Выводим шапку отчета
ТабДок.Вывести(Шапка);
// Инициализируем счетчики для общих итогов
ОбщееВИПклиент = 0;
ОбщееПостоянныйКлиент = 0;
ОбщееОбычныйКлиент = 0;
// Общие суммы для итогов
ИтогоПокраска = 0;
ИтогоЗаменаКолеса = 0;
ИтогоУборкаСалона = 0;
ИтогоЗаменаМасла = 0;
ИтогоПроверкаДавленияШинах = 0;
ИтогоЗаменаМаслаКоробке = 0;
ИтогоЗаменаМаслаРаздатке = 0;
ИтогоЗаменаМаслаПереднийМост = 0;
ИтогоЗаменаМаслаЗаднийМост = 0;
ИтогоЗаменаТормознойЖидкости = 0;
ИтогоЗаливОмывателя = 0;
ИтогоЗаменаГРМ = 0;
ИтогоЗаменаЛампочекДальнегоСвета = 0;
ИтогоЗаменаЛампочекБлижнегоСвета = 0;
ИтогоЗменаЛампочекПоворота = 0;
ИтогоЗаменаПротивотуманныхФар = 0;
ИтогоБронированоАтомобилей = 0;
ИтогоЗаменаРадиатора = 0;
ИтогоЗаменаГенератора = 0;
ИтогоДиагностика = 0;
ИтогоОставилАвтомобилНаРемонт = 0;
ИтогоКоличествоУслуг = 0;
ИтогоБаллыПродовца = 0;
// Переменные для отслеживания текущего дня
ТекущийДень = Неопределено;
// Счетчики для каждого дня
ДневнойВИПклиент = 0;
ДневнойПостоянныйКлиент = 0;
ДневнойОбычныйКлиент = 0;
// Суммы услуг за день
ДневнаяПокраска = 0;
ДневнаяЗаменаКолеса = 0;
ДневнаяУборкаСалона = 0;
ДневнаяЗаменаМасла = 0;
ДневнаяПроверкаДавленияШинах = 0;
ДневнаяЗаменаМаслаКоробке = 0;
ДневнаяЗаменаМаслаРаздатке = 0;
ДневнаяЗаменаМаслаПереднийМост = 0;
ДневнаяЗаменаМаслаЗаднийМост = 0;
ДневнаяЗаменаТормознойЖидкости = 0;
ДневнаяЗаливОмывателя = 0;
ДневнаяЗаменаГРМ = 0;
ДневнаяЗаменаЛампочекДальнегоСвета = 0;
ДневнаяЗаменаЛампочекБлижнегоСвета = 0;
ДневнаяЗменаЛампочекПоворота = 0;
ДневнаяЗаменаПротивотуманныхФар = 0;
ДневнаяБронированоАтомобилей = 0;
ДневнаяЗаменаРадиатора = 0;
ДневнаяЗаменаГенератора = 0;
ДневнаяДиагностика = 0;
ДневнаяОставилАвтомобилНаРемонт = 0;
ДневнаяКоличествоУслуг = 0;
ДневнаяБаллыПродовца = 0;
// Обрабатываем данные и выводим строки
Пока Выборка.Следующий() Цикл
// Если начался новый день
Если ТекущийДень <> Выборка.Период Тогда
// Выводим итоги предыдущего дня, если это не первый день
Если ТекущийДень <> Неопределено Тогда
ПодвалДня.Параметры.ВИПклиент = ДневнойВИПклиент;
ПодвалДня.Параметры.ПостоянныйКлиент = ДневнойПостоянныйКлиент;
ПодвалДня.Параметры.ОбычныйКлиент = ДневнойОбычныйКлиент;
ПодвалДня.Параметры.ВсегоКлиентов = ДневнойВИПклиент + ДневнойПостоянныйКлиент + ДневнойОбычныйКлиент;
ПодвалДня.Параметры.Покраска = ДневнаяПокраска;
ПодвалДня.Параметры.ЗаменаКолеса = ДневнаяЗаменаКолеса;
ПодвалДня.Параметры.УборкаСалона = ДневнаяУборкаСалона;
ПодвалДня.Параметры.ЗаменаМасла = ДневнаяЗаменаМасла;
ПодвалДня.Параметры.ПроверкаДавленияШинах = ДневнаяПроверкаДавленияШинах;
ПодвалДня.Параметры.ЗаменаМаслаКоробке = ДневнаяЗаменаМаслаКоробке;
ПодвалДня.Параметры.ЗаменаМаслаРаздатке = ДневнаяЗаменаМаслаРаздатке;
ПодвалДня.Параметры.ЗаменаМаслаПереднийМост = ДневнаяЗаменаМаслаПереднийМост;
ПодвалДня.Параметры.ЗаменаМаслаЗаднийМост = ДневнаяЗаменаМаслаЗаднийМост;
ПодвалДня.Параметры.ЗаменаТормознойЖидкости = ДневнаяЗаменаТормознойЖидкости;
ПодвалДня.Параметры.ЗаливОмывателя = ДневнаяЗаливОмывателя;
ПодвалДня.Параметры.ЗаменаГРМ = ДневнаяЗаменаГРМ;
ПодвалДня.Параметры.ЗаменаЛампочекДальнегоСвета = ДневнаяЗаменаЛампочекДальнегоСвета;
ПодвалДня.Параметры.ЗаменаЛампочекБлижнегоСвета = ДневнаяЗаменаЛампочекБлижнегоСвета;
ПодвалДня.Параметры.ЗменаЛампочекПоворота = ДневнаяЗменаЛампочекПоворота;
ПодвалДня.Параметры.ЗаменаПротивотуманныхФар = ДневнаяЗаменаПротивотуманныхФар;
ПодвалДня.Параметры.БронированоАтомобилей = ДневнаяБронированоАтомобилей;
ПодвалДня.Параметры.ЗаменаРадиатора = ДневнаяЗаменаРадиатора;
ПодвалДня.Параметры.ЗаменаГенератора = ДневнаяЗаменаГенератора;
ПодвалДня.Параметры.Диагностика = ДневнаяДиагностика;
ПодвалДня.Параметры.ОставилАвтомобилНаРемонт = ДневнаяОставилАвтомобилНаРемонт;
ПодвалДня.Параметры.КоличествоУслуг = ДневнаяКоличествоУслуг;
ПодвалДня.Параметры.БаллыПродовца = ДневнаяБаллыПродовца;
ТабДок.Вывести(ПодвалДня);
КонецЕсли;
// Начинаем новый день
ТекущийДень = Выборка.Период;
// Сбрасываем счетчики для нового дня
ДневнойВИПклиент = 0;
ДневнойПостоянныйКлиент = 0;
ДневнойОбычныйКлиент = 0;
ДневнаяПокраска = 0;
ДневнаяЗаменаКолеса = 0;
ДневнаяУборкаСалона = 0;
ДневнаяЗаменаМасла = 0;
ДневнаяПроверкаДавленияШинах = 0;
ДневнаяЗаменаМаслаКоробке = 0;
ДневнаяЗаменаМаслаРаздатке = 0;
ДневнаяЗаменаМаслаПереднийМост = 0;
ДневнаяЗаменаМаслаЗаднийМост = 0;
ДневнаяЗаменаТормознойЖидкости = 0;
ДневнаяЗаливОмывателя = 0;
ДневнаяЗаменаГРМ = 0;
ДневнаяЗаменаЛампочекДальнегоСвета = 0;
ДневнаяЗаменаЛампочекБлижнегоСвета = 0;
ДневнаяЗменаЛампочекПоворота = 0;
ДневнаяЗаменаПротивотуманныхФар = 0;
ДневнаяБронированоАтомобилей = 0;
ДневнаяЗаменаРадиатора = 0;
ДневнаяЗаменаГенератора = 0;
ДневнаяДиагностика = 0;
ДневнаяОставилАвтомобилНаРемонт = 0;
ДневнаяКоличествоУслуг = 0;
ДневнаяБаллыПродовца = 0;
// Выводим шапку дня
ШапкаДня.Параметры.ДатаДня = Формат(ТекущийДень, "ДЛФ=DD");
ТабДок.Вывести(ШапкаДня);
КонецЕсли;
// Определяем категорию клиента и увеличиваем соответствующий счетчик
Если Строка(Выборка.КатегорияКлиента) = "ВИП- клиент" Тогда
ДневнойВИПклиент = ДневнойВИПклиент + 1;
ОбщееВИПклиент = ОбщееВИПклиент + 1;
КатегорияКлиентаПредставление = "ВИП-клиент";
ИначеЕсли Строка(Выборка.КатегорияКлиента) = "Постоянный клиент" Тогда
ДневнойПостоянныйКлиент = ДневнойПостоянныйКлиент + 1;
ОбщееПостоянныйКлиент = ОбщееПостоянныйКлиент + 1;
КатегорияКлиентаПредставление = "Постоянный клиент";
ИначеЕсли Строка(Выборка.КатегорияКлиента) = "Клиент" Тогда
ДневнойОбычныйКлиент = ДневнойОбычныйКлиент + 1;
ОбщееОбычныйКлиент = ОбщееОбычныйКлиент + 1;
КатегорияКлиентаПредставление = "Обычный клиент";
Иначе
КатегорияКлиентаПредставление = Строка(Выборка.КатегорияКлиента);
КонецЕсли;
// Суммируем показатели для итогов дня
ДневнаяПокраска = ДневнаяПокраска + Выборка.Покраска;
ДневнаяЗаменаКолеса = ДневнаяЗаменаКолеса + Выборка.ЗаменаКолеса;
ДневнаяУборкаСалона = ДневнаяУборкаСалона + Выборка.УборкаСалона;
ДневнаяЗаменаМасла = ДневнаяЗаменаМасла + Выборка.ЗаменаМасла;
ДневнаяПроверкаДавленияШинах = ДневнаяПроверкаДавленияШинах + Выборка.ПроверкаДавленияШинах;
ДневнаяЗаменаМаслаКоробке = ДневнаяЗаменаМаслаКоробке + Выборка.ЗаменаМаслаКоробке;
ДневнаяЗаменаМаслаРаздатке = ДневнаяЗаменаМаслаРаздатке + Выборка.ЗаменаМаслаРаздатке;
ДневнаяЗаменаМаслаПереднийМост = ДневнаяЗаменаМаслаПереднийМост + Выборка.ЗаменаМаслаПереднийМост;
ДневнаяЗаменаМаслаЗаднийМост = ДневнаяЗаменаМаслаЗаднийМост + Выборка.ЗаменаМаслаЗаднийМост;
ДневнаяЗаменаТормознойЖидкости = ДневнаяЗаменаТормознойЖидкости + Выборка.ЗаменаТормознойЖидкости;
ДневнаяЗаливОмывателя = ДневнаяЗаливОмывателя + Выборка.ЗаливОмывателя;
ДневнаяЗаменаГРМ = ДневнаяЗаменаГРМ + Выборка.ЗаменаГРМ;
ДневнаяЗаменаЛампочекДальнегоСвета = ДневнаяЗаменаЛампочекДальнегоСвета + Выборка.ЗаменаЛампочекДальнегоСвета;
ДневнаяЗаменаЛампочекБлижнегоСвета = ДневнаяЗаменаЛампочекБлижнегоСвета + Выборка.ЗаменаЛампочекБлижнегоСвета;
ДневнаяЗменаЛампочекПоворота = ДневнаяЗменаЛампочекПоворота + Выборка.ЗменаЛампочекПоворота;
ДневнаяЗаменаПротивотуманныхФар = ДневнаяЗаменаПротивотуманныхФар + Выборка.ЗаменаПротивотуманныхФар;
ДневнаяБронированоАтомобилей = ДневнаяБронированоАтомобилей + Выборка.БронированоАтомобилей;
ДневнаяЗаменаРадиатора = ДневнаяЗаменаРадиатора + Выборка.ЗаменаРадиатора;
ДневнаяЗаменаГенератора = ДневнаяЗаменаГенератора + Выборка.ЗаменаГенератора;
ДневнаяДиагностика = ДневнаяДиагностика + Выборка.Диагностика;
ДневнаяОставилАвтомобилНаРемонт = ДневнаяОставилАвтомобилНаРемонт + Выборка.ОставилАвтомобилНаРемонт;
ДневнаяКоличествоУслуг = ДневнаяКоличествоУслуг + Выборка.КоличествоУслуг;
ДневнаяБаллыПродовца = ДневнаяБаллыПродовца + Выборка.БаллыПродовца;
// Суммируем показатели для общих итогов
ИтогоПокраска = ИтогоПокраска + Выборка.Покраска;
ИтогоЗаменаКолеса = ИтогоЗаменаКолеса + Выборка.ЗаменаКолеса;
ИтогоУборкаСалона = ИтогоУборкаСалона + Выборка.УборкаСалона;
ИтогоЗаменаМасла = ИтогоЗаменаМасла + Выборка.ЗаменаМасла;
ИтогоПроверкаДавленияШинах = ИтогоПроверкаДавленияШинах + Выборка.ПроверкаДавленияШинах;
ИтогоЗаменаМаслаКоробке = ИтогоЗаменаМаслаКоробке + Выборка.ЗаменаМаслаКоробке;
ИтогоЗаменаМаслаРаздатке = ИтогоЗаменаМаслаРаздатке + Выборка.ЗаменаМаслаРаздатке;
ИтогоЗаменаМаслаПереднийМост = ИтогоЗаменаМаслаПереднийМост + Выборка.ЗаменаМаслаПереднийМост;
ИтогоЗаменаМаслаЗаднийМост = ИтогоЗаменаМаслаЗаднийМост + Выборка.ЗаменаМаслаЗаднийМост;
ИтогоЗаменаТормознойЖидкости = ИтогоЗаменаТормознойЖидкости + Выборка.ЗаменаТормознойЖидкости;
ИтогоЗаливОмывателя = ИтогоЗаливОмывателя + Выборка.ЗаливОмывателя;
ИтогоЗаменаГРМ = ИтогоЗаменаГРМ + Выборка.ЗаменаГРМ;
ИтогоЗаменаЛампочекДальнегоСвета = ИтогоЗаменаЛампочекДальнегоСвета + Выборка.ЗаменаЛампочекДальнегоСвета;
ИтогоЗаменаЛампочекБлижнегоСвета = ИтогоЗаменаЛампочекБлижнегоСвета + Выборка.ЗаменаЛампочекБлижнегоСвета;
ИтогоЗменаЛампочекПоворота = ИтогоЗменаЛампочекПоворота + Выборка.ЗменаЛампочекПоворота;
ИтогоЗаменаПротивотуманныхФар = ИтогоЗаменаПротивотуманныхФар + Выборка.ЗаменаПротивотуманныхФар;
ИтогоБронированоАтомобилей = ИтогоБронированоАтомобилей + Выборка.БронированоАтомобилей;
ИтогоЗаменаРадиатора = ИтогоЗаменаРадиатора + Выборка.ЗаменаРадиатора;
ИтогоЗаменаГенератора = ИтогоЗаменаГенератора + Выборка.ЗаменаГенератора;
ИтогоДиагностика = ИтогоДиагностика + Выборка.Диагностика;
ИтогоОставилАвтомобилНаРемонт = ИтогоОставилАвтомобилНаРемонт + Выборка.ОставилАвтомобилНаРемонт;
ИтогоКоличествоУслуг = ИтогоКоличествоУслуг + Выборка.КоличествоУслуг;
ИтогоБаллыПродовца = ИтогоБаллыПродовца + Выборка.БаллыПродовца;
// Заполняем параметры строки для категории клиента
СтрокаКатегории.Параметры.КатегорияКлиента = КатегорияКлиентаПредставление;
// Заполняем параметры строки для услуг
СтрокаКатегории.Параметры.Покраска = ?(Выборка.Покраска > 0, Выборка.Покраска, "");
СтрокаКатегории.Параметры.ЗаменаКолеса = ?(Выборка.ЗаменаКолеса > 0, Выборка.ЗаменаКолеса, "");
СтрокаКатегории.Параметры.УборкаСалона = ?(Выборка.УборкаСалона > 0, Выборка.УборкаСалона, "");
СтрокаКатегории.Параметры.ЗаменаМасла = ?(Выборка.ЗаменаМасла > 0, Выборка.ЗаменаМасла, "");
СтрокаКатегории.Параметры.ПроверкаДавленияШинах = ?(Выборка.ПроверкаДавленияШинах > 0, Выборка.ПроверкаДавленияШинах, "");
СтрокаКатегории.Параметры.ЗаменаМаслаКоробке = ?(Выборка.ЗаменаМаслаКоробке > 0, Выборка.ЗаменаМаслаКоробке, "");
СтрокаКатегории.Параметры.ЗаменаМаслаРаздатке = ?(Выборка.ЗаменаМаслаРаздатке > 0, Выборка.ЗаменаМаслаРаздатке, "");
СтрокаКатегории.Параметры.ЗаменаМаслаПереднийМост = ?(Выборка.ЗаменаМаслаПереднийМост > 0, Выборка.ЗаменаМаслаПереднийМост, "");
СтрокаКатегории.Параметры.ЗаменаМаслаЗаднийМост = ?(Выборка.ЗаменаМаслаЗаднийМост > 0, Выборка.ЗаменаМаслаЗаднийМост, "");
СтрокаКатегории.Параметры.ЗаменаТормознойЖидкости = ?(Выборка.ЗаменаТормознойЖидкости > 0, Выборка.ЗаменаТормознойЖидкости, "");
СтрокаКатегории.Параметры.ЗаливОмывателя = ?(Выборка.ЗаливОмывателя > 0, Выборка.ЗаливОмывателя, "");
СтрокаКатегории.Параметры.ЗаменаГРМ = ?(Выборка.ЗаменаГРМ > 0, Выборка.ЗаменаГРМ, "");
СтрокаКатегории.Параметры.ЗаменаЛампочекДальнегоСвета = ?(Выборка.ЗаменаЛампочекДальнегоСвета > 0, Выборка.ЗаменаЛампочекДальнегоСвета, "");
СтрокаКатегории.Параметры.ЗаменаЛампочекБлижнегоСвета = ?(Выборка.ЗаменаЛампочекБлижнегоСвета > 0, Выборка.ЗаменаЛампочекБлижнегоСвета, "");
СтрокаКатегории.Параметры.ЗменаЛампочекПоворота = ?(Выборка.ЗменаЛампочекПоворота > 0, Выборка.ЗменаЛампочекПоворота, "");
СтрокаКатегории.Параметры.ЗаменаПротивотуманныхФар = ?(Выборка.ЗаменаПротивотуманныхФар > 0, Выборка.ЗаменаПротивотуманныхФар, "");
СтрокаКатегории.Параметры.БронированоАтомобилей = ?(Выборка.БронированоАтомобилей > 0, Выборка.БронированоАтомобилей, "");
СтрокаКатегории.Параметры.ЗаменаРадиатора = ?(Выборка.ЗаменаРадиатора > 0, Выборка.ЗаменаРадиатора, "");
СтрокаКатегории.Параметры.ЗаменаГенератора = ?(Выборка.ЗаменаГенератора > 0, Выборка.ЗаменаГенератора, "");
СтрокаКатегории.Параметры.Диагностика = ?(Выборка.Диагностика > 0, Выборка.Диагностика, "");
СтрокаКатегории.Параметры.ОставилАвтомобилНаРемонт = ?(Выборка.ОставилАвтомобилНаРемонт > 0, Выборка.ОставилАвтомобилНаРемонт, "");
СтрокаКатегории.Параметры.КоличествоУслуг = ?(Выборка.КоличествоУслуг > 0, Выборка.КоличествоУслуг, "");
СтрокаКатегории.Параметры.БаллыПродовца = ?(Выборка.БаллыПродовца > 0, Выборка.БаллыПродовца, "");
// Выводим строку категории клиента
ТабДок.Вывести(СтрокаКатегории);
КонецЦикла;
// Выводим итоги последнего дня, если были данные
Если ТекущийДень <> Неопределено Тогда
ПодвалДня.Параметры.ВИПклиент = ДневнойВИПклиент;
ПодвалДня.Параметры.ПостоянныйКлиент = ДневнойПостоянныйКлиент;
ПодвалДня.Параметры.ОбычныйКлиент = ДневнойОбычныйКлиент;
ПодвалДня.Параметры.ВсегоКлиентов = ДневнойВИПклиент + ДневнойПостоянныйКлиент + ДневнойОбычныйКлиент;
ПодвалДня.Параметры.Покраска = ДневнаяПокраска;
ПодвалДня.Параметры.ЗаменаКолеса = ДневнаяЗаменаКолеса;
ПодвалДня.Параметры.УборкаСалона = ДневнаяУборкаСалона;
ПодвалДня.Параметры.ЗаменаМасла = ДневнаяЗаменаМасла;
ПодвалДня.Параметры.ПроверкаДавленияШинах = ДневнаяПроверкаДавленияШинах;
ПодвалДня.Параметры.ЗаменаМаслаКоробке = ДневнаяЗаменаМаслаКоробке;
ПодвалДня.Параметры.ЗаменаМаслаРаздатке = ДневнаяЗаменаМаслаРаздатке;
ПодвалДня.Параметры.ЗаменаМаслаПереднийМост = ДневнаяЗаменаМаслаПереднийМост;
ПодвалДня.Параметры.ЗаменаМаслаЗаднийМост = ДневнаяЗаменаМаслаЗаднийМост;
ПодвалДня.Параметры.ЗаменаТормознойЖидкости = ДневнаяЗаменаТормознойЖидкости;
ПодвалДня.Параметры.ЗаливОмывателя = ДневнаяЗаливОмывателя;
ПодвалДня.Параметры.ЗаменаГРМ = ДневнаяЗаменаГРМ;
ПодвалДня.Параметры.ЗаменаЛампочекДальнегоСвета = ДневнаяЗаменаЛампочекДальнегоСвета;
ПодвалДня.Параметры.ЗаменаЛампочекБлижнегоСвета = ДневнаяЗаменаЛампочекБлижнегоСвета;
ПодвалДня.Параметры.ЗменаЛампочекПоворота = ДневнаяЗменаЛампочекПоворота;
ПодвалДня.Параметры.ЗаменаПротивотуманныхФар = ДневнаяЗаменаПротивотуманныхФар;
ПодвалДня.Параметры.БронированоАтомобилей = ДневнаяБронированоАтомобилей;
ПодвалДня.Параметры.ЗаменаРадиатора = ДневнаяЗаменаРадиатора;
ПодвалДня.Параметры.ЗаменаГенератора = ДневнаяЗаменаГенератора;
ПодвалДня.Параметры.Диагностика = ДневнаяДиагностика;
ПодвалДня.Параметры.ОставилАвтомобилНаРемонт = ДневнаяОставилАвтомобилНаРемонт;
ПодвалДня.Параметры.КоличествоУслуг = ДневнаяКоличествоУслуг;
ПодвалДня.Параметры.БаллыПродовца = ДневнаяБаллыПродовца;
ТабДок.Вывести(ПодвалДня);
КонецЕсли;
// Заполняем параметры общего подвала (итогов)
Подвал.Параметры.ВИПклиент = ОбщееВИПклиент;
Подвал.Параметры.ПостоянныйКлиент = ОбщееПостоянныйКлиент;
Подвал.Параметры.ОбычныйКлиент = ОбщееОбычныйКлиент;
Подвал.Параметры.ВсегоКлиентов = ОбщееВИПклиент + ОбщееПостоянныйКлиент + ОбщееОбычныйКлиент;
Подвал.Параметры.Покраска = ИтогоПокраска;
Подвал.Параметры.ЗаменаКолеса = ИтогоЗаменаКолеса;
Подвал.Параметры.УборкаСалона = ИтогоУборкаСалона;
Подвал.Параметры.ЗаменаМасла = ИтогоЗаменаМасла;
Подвал.Параметры.ПроверкаДавленияШинах = ИтогоПроверкаДавленияШинах;
Подвал.Параметры.ЗаменаМаслаКоробке = ИтогоЗаменаМаслаКоробке;
Подвал.Параметры.ЗаменаМаслаРаздатке = ИтогоЗаменаМаслаРаздатке;
Подвал.Параметры.ЗаменаМаслаПереднийМост = ИтогоЗаменаМаслаПереднийМост;
Подвал.Параметры.ЗаменаМаслаЗаднийМост = ИтогоЗаменаМаслаЗаднийМост;
Подвал.Параметры.ЗаменаТормознойЖидкости = ИтогоЗаменаТормознойЖидкости;
Подвал.Параметры.ЗаливОмывателя = ИтогоЗаливОмывателя;
Подвал.Параметры.ЗаменаГРМ = ИтогоЗаменаГРМ;
Подвал.Параметры.ЗаменаЛампочекДальнегоСвета = ИтогоЗаменаЛампочекДальнегоСвета;
Подвал.Параметры.ЗаменаЛампочекБлижнегоСвета = ИтогоЗаменаЛампочекБлижнегоСвета;
Подвал.Параметры.ЗменаЛампочекПоворота = ИтогоЗменаЛампочекПоворота;
Подвал.Параметры.ЗаменаПротивотуманныхФар = ИтогоЗаменаПротивотуманныхФар;
Подвал.Параметры.БронированоАтомобилей = ИтогоБронированоАтомобилей;
Подвал.Параметры.ЗаменаРадиатора = ИтогоЗаменаРадиатора;
Подвал.Параметры.ЗаменаГенератора = ИтогоЗаменаГенератора;
Подвал.Параметры.Диагностика = ИтогоДиагностика;
Подвал.Параметры.ОставилАвтомобилНаРемонт = ИтогоОставилАвтомобилНаРемонт;
Подвал.Параметры.КоличествоУслуг = ИтогоКоличествоУслуг;
Подвал.Параметры.БаллыПродовца = ИтогоБаллыПродовца;
// Выводим общий подвал
ТабДок.Вывести(Подвал);
// Возвращаем заполненный табличный документ
Возврат ТабДок;
КонецФункции
ПоказатьПрикрепленные файлы:
(1) Как вы, задачу решили? Помог мой отчет (прикрепил в 26)? В тестовой базе (прикрепил в 25) он у меня работает.
Если говорить в общем, то самый правильный совет - купить подписку на онлайн чат с ИИ в каком-нибудь агрегаторе нейросетей. Мне конкретно ИИ Claude 3.7 Sonnet очень помогает. Еще Deepsek и Qwen хвалят.
Главный цимус нейросетей в том, что они подстраиваются под собеседника. Такого как у нас, когда тебе нужно одно, а рассказывают про другое, ИИ себе не позволит. Люди же этим часто грешат.
Если говорить в общем, то самый правильный совет - купить подписку на онлайн чат с ИИ в каком-нибудь агрегаторе нейросетей. Мне конкретно ИИ Claude 3.7 Sonnet очень помогает. Еще Deepsek и Qwen хвалят.
Главный цимус нейросетей в том, что они подстраиваются под собеседника. Такого как у нас, когда тебе нужно одно, а рассказывают про другое, ИИ себе не позволит. Люди же этим часто грешат.
(10) У меня претензий и к остальному коду не меньше, но смысла писать их нет да и времени тратить на это жалко. Вы же не планируете по замечаниям что-либо исправлять.
Последний совет от меня: нужно переписать запрос так, что бы работал этот код:
Последний совет от меня: нужно переписать запрос так, что бы работал этот код:
Пока Выборка.Следующий() Цикл
СтрокаОтчета.Параметры.Заполнить(Выборка);
ТабДок.Вывести(СтрокаОтчета);
КонецЦикла;
(14)
1) группировать по периоду пишет что поле категория клиента отсутствует в группе.
2) Поясните вы говорите что надо группировать и я в своём запросе группирую. Но вот пользователь в (6) говорит что группировать не надо не поясняя почему вы как думаете это правильно?
1) группировать по периоду пишет что поле категория клиента отсутствует в группе.
2) Поясните вы говорите что надо группировать и я в своём запросе группирую. Но вот пользователь в (6) говорит что группировать не надо не поясняя почему вы как думаете это правильно?
(17)
пользователь в (6) говорит что группировать не надо
там же написали Вам, что не группировать когда работаете с виртуальными таблицами.... Почему так делать не нужно гуглится за 5 секунд, а Вы просите человека потратить свое время на объяснение, почему так делать не нужно. СтрокаОтчета должна выводиться в цикле по выборке, в Вашем же коде выведется только последняя строка из выборки.
(18) Ему уже три раза здесь объяснили, что если надо вывести более одной строки отчета, то ТабДок.Вывести(СтрокаОтчёта); должно стоять внутри цикла по выборке, независимо даже от результатов этого запроса и его вида. Даже пример кода где-то тут есть.
Если команда вывести строку отчета в коде встречается только один раз, то и выведено будет одна строка. Это был самый первый комментарий от RustamZz.
Но человек абсолютно уверен в правильности своего кода и что-либо менять не собирается. Тогда не понятно зачем было спрашивать и зачем остальным пытаться ему помогать и тратить своё время на эти попытки.
Если команда вывести строку отчета в коде встречается только один раз, то и выведено будет одна строка. Это был самый первый комментарий от RustamZz.
Но человек абсолютно уверен в правильности своего кода и что-либо менять не собирается. Тогда не понятно зачем было спрашивать и зачем остальным пытаться ему помогать и тратить своё время на эти попытки.
(20)В общем и целом, как минимум, алгоритм должен быть таким:
1. формируется ОЧЕРЕДНАЯ строка отчета
2. выводится ОЧЕРЕДНАЯ строка отчета
и это все должно быть внутри цикла
В вопросе алгоритм другой:
1. Формируются строки отчета ( в цикле)
2. Выводится последняя строка отчета, т.к. ТабДок.Вывести(СтрокаОтчёта); стоит ПОСЛЕ цикла формирования строк отчета и соответственно отрабатывает только один раз и выводит только одну строку - последнюю. Или первую, если в отчете всего одна строка или вообще ничего не выводит, если в отчете вообще нет строк (зависит от результатов запроса и его параметров)
Когда хотя бы это будет исправлено имеет смысл смотреть что там запрос генерирует. Но без переноса вывода очередной строки отчета внутрь цикла формирования отчета весь этот чудокод не будет выводить больше одной строки никогда. Это технически невозможно. Вообще, всё это на уровне основ программирования (даже не 1С, а программирования вообще) и рекомендации про курсы программирования были вполне кстати.
1. формируется ОЧЕРЕДНАЯ строка отчета
2. выводится ОЧЕРЕДНАЯ строка отчета
и это все должно быть внутри цикла
В вопросе алгоритм другой:
1. Формируются строки отчета ( в цикле)
2. Выводится последняя строка отчета, т.к. ТабДок.Вывести(СтрокаОтчёта); стоит ПОСЛЕ цикла формирования строк отчета и соответственно отрабатывает только один раз и выводит только одну строку - последнюю. Или первую, если в отчете всего одна строка или вообще ничего не выводит, если в отчете вообще нет строк (зависит от результатов запроса и его параметров)
Когда хотя бы это будет исправлено имеет смысл смотреть что там запрос генерирует. Но без переноса вывода очередной строки отчета внутрь цикла формирования отчета весь этот чудокод не будет выводить больше одной строки никогда. Это технически невозможно. Вообще, всё это на уровне основ программирования (даже не 1С, а программирования вообще) и рекомендации про курсы программирования были вполне кстати.
Наверное
ТабДок.Вывести(СтрокаОтчёта);
должно быть все-таки внутри цикла по выборке
Остальное - без комментариев.
ТабДок.Вывести(СтрокаОтчёта);
должно быть все-таки внутри цикла по выборке
Остальное - без комментариев.
Тут говорят, нейросети скоро программистов заменят.
У нейросетей есть отличное свойство - им говоришь, что онитупые ошибаются, они извиняются и исправляются. С некоторыми программистами это не так.
Так что, если нейросети заменят в первую очередь вот таких вот программистов, это будет изумительно.
У нейросетей есть отличное свойство - им говоришь, что они
Так что, если нейросети заменят в первую очередь вот таких вот программистов, это будет изумительно.
(23) Да, ИИ сильно крутая вещь.
Допустим, у тебя есть пустая тестовая база. Там есть документ и есть регистр накопления. Тебе нужно заполнить базу тестовыми данными. Для этого нужно написать обработку которая с помощью генератора случайных чисел создаст документы за месяц. Это трудоемко. Клод Соннет 3.7 мне такую обработку написал. Он неправильно использовал метод СлучайноеЧисло, но это не проблема. Я ему предоставил цитату из СП, он исправился. Все супер.
dt тестовой базы прикрепил.
Допустим, у тебя есть пустая тестовая база. Там есть документ и есть регистр накопления. Тебе нужно заполнить базу тестовыми данными. Для этого нужно написать обработку которая с помощью генератора случайных чисел создаст документы за месяц. Это трудоемко. Клод Соннет 3.7 мне такую обработку написал. Он неправильно использовал метод СлучайноеЧисло, но это не проблема. Я ему предоставил цитату из СП, он исправился. Все супер.
dt тестовой базы прикрепил.
Прикрепленные файлы:
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот
