Форум программистов, компьютерный форум, киберфорум
1С: Типовые и стандартные решения
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 31.01.2019
Сообщений: 7
1
1C 8.x

Доработка отчета в 1с Диетическое питание

01.08.2020, 13:46. Просмотров 128. Ответов 0

Здравствуйте!

Прошу помощи у опытных программистов 1с помочь разобраться с доработкой отчета .

Вводная

Есть типовая конфигурация 1с Медицина. Диетическое питание редакция 2.0

В ней есть отчет построенный НЕ на СКД, а в модуле объекта. Скриншот самого отчета оставил в вложениях.

Нужно добавить в поле Фактическая стоимость, собственно расчет самой фактической стоимости.
Еще в нем есть поле "Численность довольствующихся". Я хотел по образу и подобию сделать, для фактической стоимости, но не вышло((

Я сам толком не смог понять по какому принципу составляется этот отчет. Поэтому прошу помочь мне понять что, откуда и где берется?

Нижу приложу функцию расчета числа довольствующихся

Кликните здесь для просмотра всего текста

Функция ПолучитьДанныеДляПодсчетаИтоговЧисленности(ТЗКатегории) //***//

// Результат = Новый ТаблицаЗначений;
// Результат.Добавить(); // Количество
// Результат.Добавить(); // Проба.
СтруктураКоличество = Новый Структура;
СтруктураПроба = Новый Структура;

Для каждого СтрокаИтоговыхКолонок Из ИтоговыеКолонки Цикл
Идентификатор = СтрокаИтоговыхКолонок.Идентификатор;
// Результат.Колонки.Добавить(ИмяКолонки, Новый ОписаниеТипов("Число"));.
СтруктураКоличество.Вставить(Идентификатор, 0);
СтруктураПроба.Вставить(Идентификатор, 0);

Если СтрокаИтоговыхКолонок.СистемнаяКолонка Тогда
СтруктураПоиска = Новый Структура("КатегорияПитающихся,Проба", СтрокаИтоговыхКолонок.КатегорияПитающихся, СтрокаИтоговыхКолонок.Проба);
НайденныеСтроки = ТЗКатегории.НайтиСтроки(СтруктураПоиска);
Если НайденныеСтроки.Количество() > 0 Тогда
Если СтрокаИтоговыхКолонок.Проба Тогда
СтруктураПроба.Вставить(Идентификатор, НайденныеСтроки[0].Количество);
Иначе
СтруктураКоличество.Вставить(Идентификатор, НайденныеСтроки[0].Количество);
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЦикла;

ВремДанные = ИтоговыеКолонки.Выгрузить();
ВремДанные.Сортировать("ИндексРасчета");
Для каждого СтрокаИтоговыхКолонок Из ВремДанные Цикл
Если СтрокаИтоговыхКолонок.СистемнаяКолонка Тогда
Продолжить;
КонецЕсли;

Идентификатор = СтрокаИтоговыхКолонок.Идентификатор;
Формула = СтрокаИтоговыхКолонок.Формула;

Значение = 0;
Если РассчитатьФормулу(Формула, Значение, СтруктураКоличество) Тогда
СтруктураКоличество.Вставить(Идентификатор, Значение);
КонецЕсли;

Значение = 0;
Если РассчитатьФормулу(Формула, Значение, СтруктураПроба) Тогда
СтруктураПроба.Вставить(Идентификатор, Значение);
КонецЕсли;
КонецЦикла;

Результат = Новый Структура("Количество,КоличествоПроба", СтруктураКоличество, СтруктураПроба);
Возврат Результат;

КонецФункции // ()




Даоее приложу кусок кода, где встречается Фактическая стоимость

Кликните здесь для просмотра всего текста

Функция СформироватьПоПолучателю(ТабличныйДокумент, ШапкаТаблицыТолькоВНачале, Получатель = Неопределено) Экспорт
МенеджерСправочникаБлюда = Справочники.Питание_Блюда;
флУмноеОкруглениеИтога = Истина;

Макет = ПолучитьМакет("Макет");
Если флШрифтНазванийПродуктов Тогда
// Указываем шрифт для названий продуктов
Макет.Область(19,1,19,3).Шрифт = ШрифтНазванийПродуктов;
Макет.Область(21,1,22,3).Шрифт = ШрифтНазванийПродуктов;
Макет.Область(19,8,19,10).Шрифт = ШрифтНазванийПродуктов;
Макет.Область(21,8,22,10).Шрифт = ШрифтНазванийПродуктов;
КонецЕсли;
Если флШрифтНазванийБлюд Тогда
// Указываем шрифт для названий блюд
Макет.Область(15,6,15,6).Шрифт = ШрифтНазванийБлюд;
КонецЕсли;

ТЗДанные = Новый ДеревоЗначений;
ТЗПродукты = Новый ТаблицаЗначений;
Категории = Новый ТаблицаЗначений;
Результат = ПолучитьДанные(ТЗДанные, ТЗПродукты, Категории, Получатель);

ТЗКатегории = Результат.Категории;
ТЗПродукты = Результат.Продукты;
ТЗБлюда = Результат.Блюда;
ТЗИтоги = Результат.Итоги;

ВыведеноСтрок = 0;

// Вывод отчета

СтруктураПараметровШапки = Новый Структура;
Питание_НаСервере.ЗаполнитьСтруктуруОрганизации(Ссылка.Орган изация, СтруктураПараметровШапки, Ссылка.Дата);

Область = Макет.ПолучитьОбласть("Заголовок");
Область.Параметры.Заполнить(СтруктураПараметровШапки);
Область.Параметры.Номер = Питание_НаСервере.ПолучитьНомерДокумента(Ссылка);
Область.Параметры.Дата = Ссылка.Дата;
Область.Параметры.ДолжностьРуководителя = ПолучитьДолжность(ДолжностьРуководителя, ФамилияРуководителя, Получатель, Ссылка.Дата, Ссылка.Организация);
Область.Параметры.ФамилияРуководителя = ПолучитьФИО(ДолжностьРуководителя, ФамилияРуководителя, Получатель, Ссылка.Дата, Ссылка.Организация);

//Область.Параметры.ТекущаяДата = ТекущаяДата();
Если Получатель = Неопределено Тогда
Область.Параметры.СтруктурноеПодразделение = ПолучитьСтруктурноеПодразделение();
Иначе
Область.Параметры.СтруктурноеПодразделение = Питание_НаКлиентеНаСервере.ВЗ(Получатель.НаименованиеПолное, Получатель.Наименование);
КонецЕсли;
Область.Параметры.ТиповоеМеню = ПолучитьТекстТиповогоМеню();
Область.Параметры.МОЛ = ПолучитьФИО(МатериальноОтветственноеЛицо, МатериальноОтветственноеЛицо, Справочники.Питание_Получатели.ПустаяСсылка(), Ссылка.Дата, Ссылка.Организация);
Область.Параметры.Операция = ?(Ссылка.ТипКалькуляции=Перечисления.Питание_ТипыКалькуляций .Возврат, "Возврат", ?(Ссылка.ТипКалькуляции = Перечисления.Питание_ТипыКалькуляций.Дополнение, "Дополнение", "Основное"));

ТабличныйДокумент.Вывести(Область);
ВыведеноСтрок = ВыведеноСтрок + 11;

ПлановаяСтоимость_Итог = 0;
ФактическаяСтоимость_Итог = 0;
Количество_Итог = 0;
Количество_ИтогПроба = 0;
КоличествоПерсонал_Итог = 0;
КоличествоПерсонал_ИтогПроба= 0;

ДанныеДляПодсчетаИтоговЧисленности = ПолучитьДанныеДляПодсчетаИтоговЧисленности(ТЗКатегории);
//ТаблицаКатегории = ПолучитьТаблицуКатегорийДляПечати(ТаблицаКатегории);.
ТЗКатегории = ПолучитьТаблицуКатегорийДляПечати(ТЗКатегории);

// моя функция

ДанныеДляПодсчетаФактическойСтоимости = ПолучитьДанныеДляПодсчетаФактическойСтоимости(ТЗкатегории, ТЗитоги);

ТЗКатегории = ПолучитьТаблицуКатегорийДляПечати(ТЗКатегории);


// конец моей функции


СчСтрок = 0;
Для каждого СтрокаКатегории Из ТЗКатегории Цикл
Область = Макет.ПолучитьОбласть("КатегорииСтрока");
// Если СтрокаКатегории.Проба Тогда
// Область.Параметры.КатегорияПитающихся = "Проба";
// Иначе
// Область.Параметры.КатегорияПитающихся = СтрокаКатегории.КатегорияПитающихся;
// КонецЕсли;.
Область.Параметры.КатегорияПитающихсяСтр = Питание_НаКлиентеНаСервере.ВЗ(СтрокаКатегории.КатегорияПитаю щихсяПредставление, СтрокаКатегории.КатегорияПитающихся.НаименованиеПолное, СтрокаКатегории.КатегорияПитающихся);
Область.Параметры.КатегорияПитающихся = СтрокаКатегории.КатегорияПитающихся;

СтрокаКоличества = ПолучитьПредставлениеКоличестваСПробой(СтрокаКатегории.Колич ество, СтрокаКатегории.КоличествоПроба);
Если СтрокаКатегории.КатегорияПитающихся.флПерсонал Тогда
Область.Параметры.КоличествоПерсонал = СтрокаКоличества;
КоличествоПерсонал_Итог = КоличествоПерсонал_Итог + СтрокаКатегории.Количество;
КоличествоПерсонал_ИтогПроба = КоличествоПерсонал_ИтогПроба + СтрокаКатегории.КоличествоПроба;
Иначе
Область.Параметры.Количество = СтрокаКоличества;
Количество_Итог = Количество_Итог + СтрокаКатегории.Количество;
Количество_ИтогПроба = Количество_ИтогПроба + СтрокаКатегории.КоличествоПроба;
КонецЕсли;
Область.Параметры.ФактическаяСтоимость = СтрокаКатегории.Сумма;
Область.Параметры.ПлановаяЦена = СтрокаКатегории.ПлановаяЦена;
Область.Параметры.ПлановаяСтоимость = СтрокаКатегории.ПлановаяСтоимость;
ТабличныйДокумент.Вывести(Область);
ВыведеноСтрок = ВыведеноСтрок + 1;

ПлановаяСтоимость_Итог = ПлановаяСтоимость_Итог + СтрокаКатегории.ПлановаяСтоимость;
ФактическаяСтоимость_Итог = ФактическаяСтоимость_Итог + СтрокаКатегории.Сумма;
СчСтрок = СчСтрок + 1;
КонецЦикла;

0
Миниатюры
Доработка отчета в 1с Диетическое питание  
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.08.2020, 13:46
Ответы с готовыми решениями:

Доработка отчета Прайс: вывод ШК
Был готовый отчет Прайс. Надо добавить вывод шк. Все хорошо добавляется,но только все поля куда то...

Доработка типового отчета Продажи
Здравствуйте. Необходимо доработать отчет Продажи. Конфигурация УТ 10.3. Необходимо добавить...

Доработка типового отчета Ведомость товаров на складах, УТ 10.3
Здравствуйте, у меня проблема - клиент захотел доработать данный отчет. Суть такая, чтобы все...

Доработка отчета в Конфигурации "Менеджмент Безопасности"
Доброго времени суток всем читающим. Я тут недавно, поэтому если что не так пишите. (начинающий...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.08.2020, 13:46

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Купил HD3870 512mb 256bit, а вот питание от блока питание не подходит.
купил, а вот питание от блока питание не подходит, разьема почему нет такова, в карте разьем с 6...

Чуток не понимаю питание USB и питание МК...
Суть вот в чем... ну например программатор на FT232RL мне вот что не очень понятно от USB приходит...

Согласование ADM485 (питание 5v) и ATMEGA8 (питание 3.6v).
Доброго времени суток! Нужно подключить ADM485 (питание 5v) и ATMEGA8 (питание 3.6v). Полагаю, без...

Внешнее питание + питание по USB
Возможно ли такая схема питания? Задача в следущем: устройтсво большую часть времени питается от...

Передать данные из настроек отчета в поле ввода формы отчета
Всем привет! Подскажите, пожалуйста, вот есть: Внешний отчет, реквизит ДатаНачало с типом Дата...

Формирование отчета под разными пользователями. Нет прав доступа к полю отчёта.
Добрый день! Как может быть такая штука - захожу под одним пользователем, запускаю отчёт, всё...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.