Показано с 1 по 1 из 1
Древовидный режим
-
17.11.2018, 12:00 #1
- Регистрация
- 17.11.2018
- Сообщений
- 2
- Сказал(а) спасибо
- 0
- Поблагодарили 0 раз(а) в 0 сообщениях
Помогите сделать диаграмму в 7.7
есть внешний отчет вот его код
//************************************************** ************************************************** ********
Перем Периоды, Таблоид, КолФормат;
//************************************************** ************************************************** ********
Процедура ПриОткрытии()
КолФормат = "Ч-18.4";
НачДата = НачГода(ТекущаяДата());
КонДата = КонМесяца(ТекущаяДата());
КонецПроцедуры // ПриОткрытии()
//************************************************** ************************************************** ********
Процедура ПериодФормула()
ВвестиПериод(НачДата,КонДа та);
НачДата = НачМесяца(НачДата);
КонДата = КонМесяца(КонДата);
КонецПроцедуры // ПериодФормула()
//************************************************** ************************************************** ********
Процедура ОбработкаПодбора(перЭлеме� �т)
Если перЭлемент.ПометкаУдалени� �() = 0 Тогда
Если СписокНоменклатуры.НайтиЗ� �ачение(перЭлемент) = 0 Тогда
СписокНоменклатуры.Добави� �ьЗначение(перЭлемент);
КонецЕсли;
КонецЕсли;
КонецПроцедуры // ОбработкаПодбора(перЭлеме� �т)
//************************************************** ************************************************** ********
Процедура ДобавитьФормула()
перЗначение = ПолучитьПустоеЗначение("Сп равочник.Номенклатура");
Если СписокНоменклатуры.Размер� �писка() > 0 Тогда
текЗначение = СписокНоменклатуры.Текуща� �Строка();
перЗначение =СписокНоменклатуры.Получи тьЗначение(текЗначение);
КонецЕсли;
ОткрытьПодбор("Справочник.� �оменклатура", "ДляВыбора", перЗначение);
КонецПроцедуры // ДобавитьФормула()
//************************************************** ************************************************** ********
Процедура УдалитьФормула()
Количество = СписокНоменклатуры.Размер� �писка();
Если Количество = 0 Тогда Возврат; КонецЕсли;
ТекСтрока = СписокНоменклатуры.Текуща� �Строка();
СписокНоменклатуры.Удалит� �Значение(ТекСтрока);
Если Количество > 1 Тогда
СписокНоменклатуры.Текуща� �Строка(?(ТекСтрока=Количес� �во, ТекСтрока-1, ТекСтрока));
КонецЕсли;
КонецПроцедуры // УдалитьФормула()
//************************************************** ************************************************** ********
Процедура ОчиститьФормула()
СписокНоменклатуры.Удалит� �Все();
КонецПроцедуры // ОчиститьФормула()
//************************************************** ************************************************** ********
Процедура ОпределТаблиц()
Периоды = СоздатьОбъект("ТаблицаЗнач ений");
Периоды.НоваяКолонка("НачД� �та", "Дата");
Периоды.НоваяКолонка("КонД� �та", "Дата");
Периоды.НоваяКолонка("Коло� �ка", "Строка");
Периоды.НоваяКолонка("Назв� �ние", "Строка");
текДата = НачДата;
Пока текДата < КонДата Цикл
Периоды.НоваяСтрока();
Периоды.НачДата = текДата;
Периоды.КонДата = КонМесяца(текДата);
Периоды.Колонка = "Период" + СокрЛП(Периоды.НомерСтроки );
Название = ПериодСтр(Периоды.НачДата, Периоды.КонДата);
Пробел = Найти(Название, " ");
Периоды.Название = Лев(Название, Пробел-1) + РазделительСтрок + Сред(Название, Пробел+1);
текДата = ДобавитьМесяц(текДата, 1);
КонецЦикла;
Таблоид = СоздатьОбъект("ТаблицаЗнач ений");
Таблоид.НоваяКолонка("Номе� �клатура", "Справочник.Номенклатура ");
Таблоид.НоваяКолонка("Коли� �ество", "Число", 18, 4);
Периоды.ВыбратьСтроки();
Пока Периоды.ПолучитьСтроку() = 1 Цикл
Таблоид.НоваяКолонка(Перио ды.Колонка, "Число", 18, 4);
КонецЦикла;
КонецПроцедуры // ОпределТаблиц()
//************************************************** ************************************************** ********
Функция ОпределКолонки(перДата)
Периоды.ВыбратьСтроки();
Пока Периоды.ПолучитьСтроку() = 1 Цикл
Если перДата > Периоды.КонДата Тогда
Продолжить;
КонецЕсли;
Возврат Периоды.Колонка;
КонецЦикла;
Возврат "";
КонецФункции // ОпределКолонки(перДата)
//************************************************** ************************************************** ********
Процедура ВыборкаВозвратов()
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса = "
|ОбрабатыватьДокументы Проведенные;
|Период с НачДата по КонДата;
|Док = Документ.ВозвратОтПокупат� �ля.ТекущийДокумент;
|Номенклатура = Документ.ВозвратОтПокупат� �ля.Товар;
|Условие(СписокНоменклатур ы.НайтиЗначение(Номенклату ра)>0);
|Количество = Документ.ВозвратОтПокупат� �ля.Количество;
|Функция Возвращено = Сумма(Количество);
|Группировка Номенклатура Без Групп;
|Группировка Док;
|";
Если Запрос.Выполнить(ТекстЗапр оса) = 1 Тогда
Пока Запрос.Группировка("Номенк� �атура") = 1 Цикл
Таблоид.НоваяСтрока();
Таблоид.Номенклатура = Запрос.Номенклатура;
Таблоид.Количество = Запрос.Возвращено;
Пока Запрос.Группировка("Док") = 1 Цикл
Таблоид.УстановитьЗначени� �(Таблоид.НомерСтроки, ОпределКолонки(Запрос.Док.� �атаДок),Запрос.Возвращено);
КонецЦикла;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
//************************************************** ************************************************** ********
Процедура ВыборкаОтгруженных()
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса = "
|ОбрабатыватьДокументы Проведенные;
|Период с НачДата по КонДата;
|Док = Документ.РасходнаяНакладн� �я.ТекущийДокумент;
|Номенклатура = Документ.РасходнаяНакладн� �я.Товар;
|Условие(СписокНоменклатур ы.НайтиЗначение(Номенклату ра)>0);
|Количество = Документ.РасходнаяНакладн� �я.Количество;
|Функция Отгружено = Сумма(Количество);
|Группировка Номенклатура Без Групп;
|Группировка Док;
|";
Если Запрос.Выполнить(ТекстЗапр оса) = 1 Тогда
Пока Запрос.Группировка("Номенк� �атура") = 1 Цикл
Таблоид.НоваяСтрока();
Таблоид.Номенклатура = Запрос.Номенклатура;
Таблоид.Количество = Запрос.Отгружено;
Пока Запрос.Группировка("Док") = 1 Цикл
Таблоид.УстановитьЗначени� �(Таблоид.НомерСтроки, ОпределКолонки(Запрос.Док.� �атаДок), Запрос.Отгружено);
КонецЦикла;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
//************************************************** ************************************************** ********
Процедура ОбработкаЗначений()
СуммаКолонки = "Количество";
Периоды.ВыбратьСтроки();
Пока Периоды.ПолучитьСтроку() = 1 Цикл
СуммаКолонки = СуммаКолонки + "," + Периоды.Колонка;
КонецЦикла;
КонецПроцедуры
//************************************************** ************************************************** ********
Процедура ПечатьОтчета()
Печатник = СоздатьОбъект("Таблица");
Печатник.ИсходнаяТаблица("� �тгружено");
_Заглавие = "Отгрузка номенклатуры по РБ " + ПериодСтр(НачДата, КонДата);
Печатник.ВывестиСекцию("Ша� �ка|Основа");
Периоды.ВыбратьСтроки();
Пока Периоды.ПолучитьСтроку() = 1 Цикл
_Период = Периоды.Название;
Печатник.ПрисоединитьСекц� �ю("Шапка|Период");
КонецЦикла;
Таблоид.ВыбратьСтроки();
Пока Таблоид.ПолучитьСтроку() = 1 Цикл
_Номенклатура = СокрЛП(Таблоид.Номенклатур а);
_Количество = Формат(Таблоид.Количество, КолФормат);
Печатник.ВывестиСекцию("На� �менование|Основа");
Периоды.ВыбратьСтроки();
Пока Периоды.ПолучитьСтроку() = 1 Цикл
_Количество =Таблоид.ПолучитьЗначение(� �аблоид.НомерСтроки, Периоды.Колонка);
Печатник.ПрисоединитьСекц� �ю("Наименование|Период");
КонецЦикла;
КонецЦикла;
_Колонтитул = _Заглавие;
Печатник.ПовторятьПриПеча� �иСтроки(5, 6);
Печатник.ПараметрыСтраниц� �(2, , , 7, 7, 15, 7, 7, 7, 1);
Печатник.КоличествоЭкземп� �яров(1);
Печатник.ТолькоПросмотр(1);
Печатник.Показать(_Колонти� �ул);
КонецПроцедуры // ПечатьОтчета()
//************************************************** ************************************************** ********
Процедура Сформировать()
ОчиститьОкноСообщений();
ОпределТаблиц();
ВыборкаОтгруженных();
ВыборкаВозвратов();
Если Таблоид.КоличествоСтрок() = 0 Тогда
Предупреждение("Данные не обнаружены! Попробуйте ещё раз =)");
Иначе
ОбработкаЗначений();
ПечатьОтчета();
КонецЕсли;
КонецПроцедуры // Сформировать()
//************************************************** ************************************************** ********
Похожие темы
-
Помогите сделать конфигурацию для мобильного приложения "аудиокниги"
от maxhzz в разделе Конфигурирование, программирование 1С - ПредприятиеОтветов: 0Последнее сообщение: 17.05.2016, 22:22 -
Помогите сделать, чтобы данные не повторились
от spam3020 в разделе 1С - Предприятие 8.0, 8.1, 8.2, 8.3Ответов: 2Последнее сообщение: 15.12.2013, 14:17 -
Помогите пожалуйста, сделать так, чтобы суммы в отчете ДДС выводились не по неделям,
от Saengmyung в разделе Конфигурирование, программирование 1С - ПредприятиеОтветов: 0Последнее сообщение: 15.10.2013, 15:54 -
помогите сделать дома интернет!
от senseysensor в разделе В помощь системному администраторуОтветов: 4Последнее сообщение: 11.09.2010, 13:30 -
помогите плиз сделать сеть между двумя виртуальными машинами?!
от God-of-Chaos в разделе В помощь системному администраторуОтветов: 1Последнее сообщение: 18.07.2009, 12:07
Социальные закладки