|
v7: Проблемы с отчетом | ☑ | ||
---|---|---|---|---|
0
kambar93
01.05.12
✎
16:10
|
не получается переделать на другую базу....
Процедура Посчитать(НачДата, КонДата, Счет, КорСчет, мСчет, зСчет, НаклРасходы) табНом = СоздатьОбъект("ТаблицаЗначений"); табНом.НоваяКолонка("ГП"); табНом.НоваяКолонка("ГС"); табНом.НоваяКолонка("ГК"); табНом.НоваяКолонка("СС"); табНом.НоваяКолонка("МТ"); табНом.НоваяКолонка("ЗТ"); Ит = СоздатьОбъект("БухгалтерскиеИтоги"); Ит.ИспользоватьСубконто(ВидыСубконто.Номенклатура); Ит.ВыполнитьЗапрос(НачДата, КонДата, Счет, , , 1, , ); Ит.ВыбратьСубконто(); Пока Ит.ПолучитьСубконто() = 1 Цикл ГП = Ит.Субконто(); ГС = Ит.ДО(); табНом.НоваяСтрока(); табНом.ГП = ГП; табНом.ГС = ГС; КонецЦикла; Ит = СоздатьОбъект("БухгалтерскиеИтоги"); Ит.ИспользоватьСубконто(ВидыСубконто.Номенклатура); Ит.ВыполнитьЗапрос(НачДата, КонДата, КорСчет, Счет, , 2, , ); Ит.ВыбратьСубконто(); Пока Ит.ПолучитьСубконто() = 1 Цикл ГП = Ит.Субконто(); Стр = 0; Если табНом.НайтиЗначение(ГП, Стр, "ГП") = 1 Тогда ГС = табНом.ПолучитьЗначение(Стр, "ГС"); ГК = Ит.ДО(3); СС = ГС / ГК; табНом.УстановитьЗначение(Стр, "ГК", ГК); табНом.УстановитьЗначение(Стр, "СС", СС); Иначе Сообщить("Не нашел 1 !! "+ГП); КонецЕсли; КонецЦикла; Ном = СоздатьОбъект("Справочник.Номенклатура"); Ном.ВыбратьЭлементы(); табНом.ВыбратьСтроки(); Если Отчет = 0 Тогда Пока табНом.ПолучитьСтроку() = 1 Цикл Если Ном.НайтиЭлемент(табНом.ГП) = 1 Тогда Ном.Себестоимость.Установить(НачДата, табНом.СС); КонецЕсли; КонецЦикла; КонецЕсли; Ит = СоздатьОбъект("БухгалтерскиеИтоги"); Ит.ИспользоватьСубконто(ВидыСубконто.Номенклатура); Ит.ИспользоватьКорСубконто(ВидыСубконто.Материалы); Ит.ВыполнитьЗапрос(НачДата, КонДата, Счет, мСчет, , 2, , ); Ит.ВыбратьСубконто(); Пока Ит.ПолучитьСубконто() = 1 Цикл ГП = Ит.Субконто(); Стр = 0; Если табНом.НайтиЗначение(ГП, Стр, "ГП") = 1 Тогда табКор = СоздатьОбъект("ТаблицаЗначений"); табКор.НоваяКолонка("К"); табКор.НоваяКолонка("С"); Ит.ВыбратьКорСубконто(); Пока Ит.ПолучитьКорСубконто() = 1 Цикл табКор.НоваяСтрока(); табКор.К = Ит.КорСубконто(); табКор.С = Ит.КорДО(); КонецЦикла; табНом.УстановитьЗначение(Стр, "МТ", табКор); Иначе Сообщить("Не нашел 2 !! "+ГП); КонецЕсли; КонецЦикла; Ит = СоздатьОбъект("БухгалтерскиеИтоги"); Ит.ИспользоватьСубконто(ВидыСубконто.Номенклатура); Ит.ВыполнитьЗапрос(НачДата, КонДата, Счет, зСчет, , 2, , ); Ит.ВыбратьСубконто(); Пока Ит.ПолучитьСубконто() = 1 Цикл ГП = Ит.Субконто(); Стр = 0; Если табНом.НайтиЗначение(ГП, Стр, "ГП") = 1 Тогда табКор = Ит.ДО(); табНом.УстановитьЗначение(Стр, "ЗТ", табКор); Иначе Сообщить("Не нашел 2 !! "+ГП); КонецЕсли; КонецЦикла; // Т = СоздатьОбъект("Таблица"); табНом.ВыбратьСтроки(); ИтогоПрибыльОтПроизводства = 0; Пока табНом.ПолучитьСтроку() = 1 Цикл Номен = табНом.ГП; Т.ВывестиСекцию("Шапка"); ВыпускБезПолуф = табНом.ГК; //СуммаВыпускБезПолуф = табНом.ГС; СуммаВыпускБезПолуф = Номен.Цена.Получить(НачДата) * ВыпускБезПолуф; Т.ВывестиСекцию("ВыпускБезПолуф"); Т.ВывестиСекцию("ШапкаМатериалы"); вт = табНом.МТ; вт.ВыбратьСтроки(); Пока вт.ПолучитьСтроку() = 1 Цикл Матер = вт.К; МатериалНаПрод = вт.С; МатериалНа1Прод = вт.С / табНом.ГК; Т.ВывестиСекцию("Материалы"); КонецЦикла; ВсегоМатериаловНаПрод = вт.Итог("С"); ВсегоМатериаловНа1Прод = ВсегоМатериаловНаПрод / табНом.ГК; Т.ВывестиСекцию("ВсегоМат"); Т.ВывестиСекцию("ШапкаНакладныеРасходы"); РасходыНаПрод = табНом.ЗТ; РасходыНа1Прод = табНом.ЗТ / табНом.ГК; Т.ВывестиСекцию("НакладныеРасходы"); ЗатратыНаСС = ВсегоМатериаловНаПрод + РасходыНаПрод; Себестоимость1Бут = ЗатратыНаСС / табНом.ГК; Т.ВывестиСекцию("Затраты"); ПрибыльОтПроизводства = СуммаВыпускБезПолуф - ЗатратыНаСС; Т.ВывестиСекцию("Прибыль"); ИтогоПрибыльОтПроизводства = ИтогоПрибыльОтПроизводства + ПрибыльОтПроизводства; КонецЦикла; Т.ВывестиСекцию("ИтогБезПолуф"); Т.Показать(); // КонецПроцедуры Процедура ПерепровестиДокументы(НачДата, КонДата) Если Отчет = 0 Тогда Сообщить("Перепроводим документы"); Док = СоздатьОбъект("Документ"); Док.ВыбратьДокументы(НачДата, КонДата); Пока Док.ПолучитьДокумент() = 1 Цикл Если Док.ПометкаУдаления() = 0 Тогда Если Док.Проведен() = 1 Тогда Если (Док.Вид() = "_03_АктСписанияМатериаловВодка") ИЛИ (Док.Вид() = "_03_АктСписанияВодки") ИЛИ (Док.Вид() = "_03_АктСписанияМатериаловСпирт") ИЛИ (Док.Вид() = "_03_АктСписанияСпирта") ИЛИ (Док.Вид() = "_03_АктСписанияНаВыпускМакарон") Тогда Сообщить(Док.ТекущийДокумент()); Док.Провести(0, 2); Док.Записать(); КонецЕсли; КонецЕсли; КонецЕсли; КонецЦикла; Сообщить("Перепроведение завершено"); КонецЕсли; КонецПроцедуры //******************************************* Процедура Сформировать() НачДата = НачМесяца(ДатаОт); КонДата = КонМесяца(ДатаОт); Посчитать(НачДата, КонДата, "900.0", "221.0", "207.0", "900.5", "Затраты для водки"); Посчитать(НачДата, КонДата, "900.1", "221.1", "207.1", "900.5", "Спирт"); Посчитать(НачДата, КонДата, "900.2", "221.2", "207.2", "900.5", "Макар"); ПерепровестиДокументы(НачДата, КонДата); КонецПроцедуры |
|||
1
kambar93
01.05.12
✎
16:10
|
вот от сюда дальше не идет....
вт = табНом.МТ; вт.ВыбратьСтроки(); Пока вт.ПолучитьСтроку() = 1 Цикл Матер = вт.К; МатериалНаПрод = вт.С; МатериалНа1Прод = вт.С / табНом.ГК; Т.ВывестиСекцию("Материалы"); КонецЦикла; |
|||
2
kambar93
01.05.12
✎
16:11
|
что б установить значение МТ
Пока Ит.ПолучитьСубконто() = 1 Цикл ГП = Ит.Субконто(); Стр = 0; Если табНом.НайтиЗначение(ГП, Стр, "ГП") = 1 Тогда табКор = СоздатьОбъект("ТаблицаЗначений"); табКор.НоваяКолонка("К"); табКор.НоваяКолонка("С"); Ит.ВыбратьКорСубконто(); Пока Ит.ПолучитьКорСубконто() = 1 Цикл табКор.НоваяСтрока(); табКор.К = Ит.КорСубконто(); табКор.С = Ит.КорДО(); КонецЦикла; табНом.УстановитьЗначение(Стр, "МТ", табКор); Иначе Сообщить("Не нашел 2 !! "+ГП); КонецЕсли; КонецЦикла; вот тут не присваивается! |
|||
3
kambar93
01.05.12
✎
16:11
|
вт.ВыбратьСтроки();
{Отчет.РасчетСебестоимостиПродукции.Форма.Модуль{118}}: Значение не представляет агрегатный объект(ВыбратьСтроки) |
|||
4
aka AMIGO
01.05.12
✎
16:23
|
(1)вт = СоздатьОбъект("ТаблицаЗначений"); //где у тебя присвоение? что-то не видно, чтоб это была ТЗ
|
|||
5
kambar93
01.05.12
✎
16:24
|
вт = табНом.МТ;
|
|||
6
aka AMIGO
01.05.12
✎
16:25
|
(3)ты открой отладчик, поставь точку останова на вт.Выбрать, и посмотри в окне табло ТипЗначенияСтр(вт)
|
|||
7
aka AMIGO
01.05.12
✎
16:27
|
(5)во, тут надо ставить точку останова!
|
|||
8
aka AMIGO
01.05.12
✎
16:28
|
+7 и посмотри до присвоения и сразу-же после неё
интересно, что там покажется :) |
|||
9
Сияющий Асинхраль
01.05.12
✎
16:30
|
Когда присваиваешь значение ТабНом.МТ лучше пользовать не установить значение, а Выгрузить
|
|||
10
kambar93
01.05.12
✎
16:31
|
вт = табНом.МТ; вт = (пусто)
тамНом = нормально все показывает! МТ = ошибка в выр |
|||
11
aka AMIGO
01.05.12
✎
16:31
|
+8 и посмотри, во всех-ли табНом.МТ присвоено значение.
колонка МТ у тебя не определена, и пытаться выбрать из неё строки - неудачная идея |
|||
12
Сияющий Асинхраль
01.05.12
✎
16:32
|
Т.е. не стоит присваивать таблицы значений обычным присвоением и установкой значений
|
|||
13
aka AMIGO
01.05.12
✎
16:32
|
(10)вот она, твоя ошибка.. Это не ТЗ, а пустота
|
|||
14
kambar93
01.05.12
✎
16:33
|
что мне делать :(?
|
|||
15
aka AMIGO
01.05.12
✎
16:33
|
(14)см (9) и (12)
|
|||
16
kambar93
01.05.12
✎
16:37
|
значит во всех местах "УстановитьЗначение" переделать на "Выгрузить"
|
|||
17
kambar93
01.05.12
✎
16:41
|
табНом.Выгрузить(Стр, "ГК", ГК);
{Отчет.РасчетСебестоимостиПродукцииМК.Форма.Модуль(40)}: Номер за пределами значения! |
|||
18
aka AMIGO
01.05.12
✎
16:43
|
(17)найди в СП, как делается Выгрузить()
|
|||
19
aka AMIGO
01.05.12
✎
16:44
|
(16)УстановитьЗначение - указываешь строку и колонку
Выгрузить() - указываешь ТЗ, куда выгружаешь.. почитай СП.. |
|||
20
НикДляЗапросов
01.05.12
✎
16:45
|
обратись к тому кто этот код написал...
|
|||
21
aka AMIGO
01.05.12
✎
16:47
|
(20)вряд-ли найдет автора..
|
|||
22
kambar93
01.05.12
✎
17:02
|
МТ не присваивается
|
|||
23
kambar93
01.05.12
✎
17:06
|
табНом.УстановитьЗначение(Стр, "МТ" , табКор);
табНом.Выгрузить("ЗТ",,,); |
|||
24
kambar93
01.05.12
✎
17:07
|
ой
табНом.УстановитьЗначение(Стр, "МТ" , табКор); табНом.Выгрузить("МТ",,,); |
|||
25
zak555
01.05.12
✎
17:07
|
что такое : мСчет, зСчет ?
|
|||
26
kambar93
01.05.12
✎
17:11
|
суб счета! думаю в кореспондирующих субконто проблдемы!
|
|||
27
kambar93
01.05.12
✎
17:29
|
табКор.НоваяСтрока();
табКор.К=Ит.КорСубконто(); табКор.С=Ит.КорДО(); вот тут проблемки.... |
|||
28
GreyK
01.05.12
✎
17:54
|
Чёй-то я даже не нашел создания колонки ВТ и тем более присвоения ей значения.
|
|||
29
kambar93
01.05.12
✎
17:57
|
Нету колонки ВТ!
|
|||
30
kambar93
01.05.12
✎
17:57
|
МТ
табНом.НоваяКолонка("МТ"); |
|||
31
GreyK
01.05.12
✎
18:13
|
(29) Вместо:
табНом.УстановитьЗначение(Стр, "МТ", табКор); Сделай: табНом.МТ = СоздатьОбъект("ТаблицаЗначений"); табКор.Выгрузить(табНом.МТ); |
|||
32
kambar93
01.05.12
✎
18:56
|
Блин не присваивает.... и так и так... :(
|
|||
33
GreyK
01.05.12
✎
19:06
|
Сегодня "Умри труд изы_маю_щий здоровье", т.ч завтра ты научишься отладчиком пользоваться :)
|
|||
34
aka AMIGO
01.05.12
✎
19:13
|
Ит.ВыбратьСубконто();
вт = создатьОбъект("ТаблицаЗначений"); вт.НоваяКолонка("Ы"); //на всякий случай Пока Ит.ПолучитьСубконто() = 1 Цикл ГП = Ит.Субконто(); ГС = Ит.ДО(); табНом.НоваяСтрока(); табНом.ГП = ГП; табНом.ГС = ГС; табНом.МТ = вт; //присваивание пустой ТЗ КонецЦикла; // следующая замена в тексте: Т.ВывестиСекцию("ШапкаМатериалы"); //вт = табНом.МТ; ТабНом.МТ.Выгрузить(вт); //попробовать такой вариант.. вт.ВыбратьСтроки(); будет работать, или нет - не могу сказать. у тебя большое преимущество перед всеми: есть работающая БД, в которой можно посмотреть в отладчике. |
|||
35
kambar93
01.05.12
✎
19:42
|
вот ёё. у меня даже ГК не присваивало оказ-ся....
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |