|
Помогите найти ошибку в коде | ☑ | ||
---|---|---|---|---|
0
ivan3333567
05.02.14
✎
11:09
|
В колонке количество пишет вместо 5шт -15. Помогите найти ошибку:
Строка = Макет.ПолучитьОбласть("Строка"); ПоследняяСтрока = Макет.ПолучитьОбласть("ПоследняяСтрока"); Для Каждого СтрокаТовар Из ВыборкаСтрокТовары Цикл НомерСтроки = НомерСтроки + 1; // Проверим, помещается ли строка с данными и последняя строка (или итоги) на странице. СтрокаТаблицы = Новый Массив; СтрокаТаблицы.Добавить(Строка); Если НЕ (НомерСтроки = ВыборкаСтрокТовары.Количество()) Тогда СтрокаТаблицы.Добавить(ПоследняяСтрока); Иначе СтрокаТаблицы.Добавить(Итого); КонецЕсли; Если НЕ ТабДокумент.ПроверитьВывод(СтрокаТаблицы) Тогда НомерСтраницы = НомерСтраницы + 1; ТабДокумент.Вывести(ПоследняяСтрока); ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц(); ЗаголовокТаблицы.Параметры.НомерСтраницы = "Страница " + НомерСтраницы; ТабДокумент.Вывести(ЗаголовокТаблицы); КонецЕсли; СчетДт = СтрокаТовар.СчетДт; //Поз = Найти(СчетДт, "."); //СчетДт = ?(Поз>0, Лев(СчетДт, Поз-1), СчетДт); СчетКт = СтрокаТовар.СчетКт; //Поз = Найти(СчетКт, "."); //СчетКт = ?(Поз>0, Лев(СчетКт, Поз-1), СчетКт); Строка.Параметры.Заполнить(СтрокаТовар); Строка.Параметры.ПричинаСписания = СокрЛП(СсылкаНаОбъект.Комментарий); Строка.Параметры.СчетДт = СчетДт; Строка.Параметры.СчетКт = СчетКт; ТабДокумент.Вывести(Строка); ИтогоКоличество = ИтогоКоличество + Строка.Параметры.Количество; ИтогоСуммаПервоначальнойСтоимости = ИтогоСуммаПервоначальнойСтоимости + Строка.Параметры.СуммаПервоначальнойСтоимости; КонецЦикла; // Выводим итоги по документу Итого.Параметры.КоличествоПорядковыхНомеровЗаписейПрописью = ЧислоПрописью(ВыборкаСтрокТовары.Итог("Количество"), ,",,,,,,,,0"); Итого.Параметры.ИтогоСуммаПервоначальнойСтоимости = Формат(ИтогоСуммаПервоначальнойСтоимости, "ЧЦ=15; ЧДЦ=2; ЧРД=.; ЧРГ=' '"); ТабДокумент.Вывести(Итого); // Проверим, помещается ли подвал Если НЕ ТабДокумент.ПроверитьВывод(Подвал) Тогда ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц(); КонецЕсли; Функция ВыполнитьЗапросПоТЧ(Шапка) ЗапросПоТоварам = Новый Запрос(); ЗапросПоТоварам.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект); ЗапросПоТоварам.УстановитьПараметр("ДатаДокумента", Шапка.ДатаДокумента); ЗапросПоТоварам.УстановитьПараметр("СчетУчетаСпецодеждыЗабалансовый", ПланыСчетов.Хозрасчетный.СпецодеждаВЭксплуатацииВспомогательный); ЗапросПоТоварам.УстановитьПараметр("СчетУчетаСпецоснасткиЗабалансовый", ПланыСчетов.Хозрасчетный.СпецоснасткаВЭксплуатацииВспомогательный); ЗапросПоТоварам.УстановитьПараметр("СчетУчетаИнвентаряИХозяйственныхПринадлежностейЗабалансовый", ПланыСчетов.Хозрасчетный.ИнвентарьИХозяйственныеПринадлежностиВЭксплуатации); ЗапросПоТоварам.Текст = "ВЫБРАТЬ РАЗЛИЧНЫЕ | ТребованиеНакладнаяМатериалы.Номенклатура КАК Номенклатура, | ТребованиеНакладнаяМатериалы.Номенклатура КАК ТоварНаименование, | СУММА(ТребованиеНакладнаяМатериалы.Количество) КАК Количество, | ТребованиеНакладнаяМатериалы.Себестоимость КАК Себестоимость, | ТребованиеНакладнаяМатериалы.Номенклатура.Код КАК НоменклатурныйНомер, | ТребованиеНакладнаяМатериалы.Номенклатура.БазоваяЕдиницаИзмерения.Код КАК ЕдиницаИзмеренияКод, | ТребованиеНакладнаяМатериалы.Номенклатура.БазоваяЕдиницаИзмерения.Наименование КАК ЕдиницаИзмеренияНаименование, | СУММА(ЕСТЬNULL(ХозрасчетныйДвиженияССубконто.Сумма, 0)) КАК СуммаПервоначальнойСтоимости, | СУММА(ЕСТЬNULL(ХозрасчетныйДвиженияССубконто.Сумма, 0)) / СУММА(ЕСТЬNULL(ТребованиеНакладнаяМатериалы.Количество, 0)) КАК Цена, | ЕСТЬNULL(ХозрасчетныйДвиженияССубконто.СчетДт.Код, """") КАК СчетДт, | ЕСТЬNULL(ХозрасчетныйДвиженияССубконто.СчетКт.Код, """") КАК СчетКт |ИЗ | Документ.ТребованиеНакладная.Материалы КАК ТребованиеНакладнаяМатериалы | ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(, , Регистратор = &ТекущийДокумент) КАК ХозрасчетныйДвиженияССубконто | ПО ТребованиеНакладнаяМатериалы.Номенклатура = ХозрасчетныйДвиженияССубконто.СубконтоКт1 |ГДЕ | ТребованиеНакладнаяМатериалы.Ссылка = &ТекущийДокумент | И ХозрасчетныйДвиженияССубконто.Регистратор = &ТекущийДокумент | |СГРУППИРОВАТЬ ПО | ТребованиеНакладнаяМатериалы.Номенклатура, | ТребованиеНакладнаяМатериалы.Себестоимость, | ТребованиеНакладнаяМатериалы.Номенклатура.Код, | ТребованиеНакладнаяМатериалы.Номенклатура.БазоваяЕдиницаИзмерения.Код, | ТребованиеНакладнаяМатериалы.Номенклатура.БазоваяЕдиницаИзмерения.Наименование, | ЕСТЬNULL(ХозрасчетныйДвиженияССубконто.СчетДт.Код, """"), | ЕСТЬNULL(ХозрасчетныйДвиженияССубконто.СчетКт.Код, """"), | ТребованиеНакладнаяМатериалы.Номенклатура | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ РАЗЛИЧНЫЕ | ТребованиеНакладнаяМатериалыЗаказчика.Номенклатура, | ТребованиеНакладнаяМатериалыЗаказчика.Номенклатура, | СУММА(ТребованиеНакладнаяМатериалыЗаказчика.Количество), | 0, | ТребованиеНакладнаяМатериалыЗаказчика.Номенклатура.Код, | ТребованиеНакладнаяМатериалыЗаказчика.Номенклатура.БазоваяЕдиницаИзмерения.Код, | ТребованиеНакладнаяМатериалыЗаказчика.Номенклатура.БазоваяЕдиницаИзмерения.Наименование, | ХозрасчетныйДвиженияССубконто.Сумма, | 0, | ЕСТЬNULL(ХозрасчетныйДвиженияССубконто.СчетДт.Код, """"), | ЕСТЬNULL(ХозрасчетныйДвиженияССубконто.СчетКт.Код, """") |ИЗ | (ВЫБРАТЬ РАЗЛИЧНЫЕ | ТребованиеНакладнаяМатериалыЗаказчика.Номенклатура КАК Номенклатура, | ТребованиеНакладнаяМатериалыЗаказчика.Ссылка.ПодразделениеЗатрат КАК Подразделение, | СУММА(ТребованиеНакладнаяМатериалыЗаказчика.Количество) КАК Количество | ИЗ | Документ.ТребованиеНакладная.МатериалыЗаказчика КАК ТребованиеНакладнаяМатериалыЗаказчика | ГДЕ | ТребованиеНакладнаяМатериалыЗаказчика.Ссылка = &ТекущийДокумент | | СГРУППИРОВАТЬ ПО | ТребованиеНакладнаяМатериалыЗаказчика.Номенклатура, | ТребованиеНакладнаяМатериалыЗаказчика.Ссылка.ПодразделениеЗатрат) КАК ТребованиеНакладнаяМатериалыЗаказчика | ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(, , Регистратор = &ТекущийДокумент) КАК ХозрасчетныйДвиженияССубконто | ПО ТребованиеНакладнаяМатериалыЗаказчика.Номенклатура = ХозрасчетныйДвиженияССубконто.СубконтоКт1 | |СГРУППИРОВАТЬ ПО | ТребованиеНакладнаяМатериалыЗаказчика.Номенклатура, | ТребованиеНакладнаяМатериалыЗаказчика.Номенклатура.Код, | ТребованиеНакладнаяМатериалыЗаказчика.Номенклатура.БазоваяЕдиницаИзмерения.Код, | ТребованиеНакладнаяМатериалыЗаказчика.Номенклатура.БазоваяЕдиницаИзмерения.Наименование, | ХозрасчетныйДвиженияССубконто.Сумма, | ЕСТЬNULL(ХозрасчетныйДвиженияССубконто.СчетДт.Код, """"), | ЕСТЬNULL(ХозрасчетныйДвиженияССубконто.СчетКт.Код, """"), | ТребованиеНакладнаяМатериалыЗаказчика.Номенклатура"; ВыборкаСтрокТовары = ЗапросПоТоварам.Выполнить().Выгрузить(); Возврат ВыборкаСтрокТовары; КонецФункции // ВыполнитьЗапросПоТЧ() |
|||
1
1Сергей
05.02.14
✎
11:11
|
Пригласите специалиста
|
|||
2
Wobland
05.02.14
✎
11:11
|
подели на три
|
|||
3
Godofsin
05.02.14
✎
11:12
|
жесть какая то
|
|||
4
Rlogin
05.02.14
✎
11:13
|
В таблице может 2 строчки одинаковые, поэтому 15
|
|||
5
Ёпрст
05.02.14
✎
11:13
|
(0) вот сколько проводок - на столько и "задвоит", "затроит" твой запрос с твоим левым соединением
|
|||
6
Ёпрст
05.02.14
✎
11:14
|
+5
Документ.ТребованиеНакладная.Материалы КАК ТребованиеНакладнаяМатериалы | ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(, , Регистратор = &ТекущийДокумент) КАК ХозрасчетныйДвиженияССубконто | ПО ТребованиеНакладнаяМатериалы.Номенклатура = ХозрасчетныйДвиженияССубконто.СубконтоКт1 вот это, если че, не верно |
|||
7
ivan3333567
05.02.14
✎
11:44
|
(6) А что именно нужно исправить, чтоб пофиг сколько раз провести выводило только то количество, которое записано ?
|
|||
8
Wobland
05.02.14
✎
11:51
|
(7) соединять по всем измерениям
|
|||
9
ivan3333567
05.02.14
✎
11:55
|
Если не сложно можно поподробней? (8)
Я что-то не понимаю |
|||
10
Wobland
05.02.14
✎
12:04
|
вот тебе запросы
ВЫБРАТЬ спрНоменклатура.Ссылка, ОстаткиНоменклатурыОстатки.Склад, ОстаткиНоменклатурыОстатки.КоличествоОстаток ИЗ Справочник.Номенклатура КАК спрНоменклатура ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиНоменклатуры.Остатки КАК ОстаткиНоменклатурыОстатки ПО (ОстаткиНоменклатурыОстатки.Номенклатура = спрНоменклатура.Ссылка) ГДЕ спрНоменклатура.Ссылка = &Номенклатура ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ спрНоменклатура.Ссылка, СУММА(ОстаткиНоменклатурыОстатки.КоличествоОстаток) КАК КоличествоОстаток ИЗ Справочник.Номенклатура КАК спрНоменклатура ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиНоменклатуры.Остатки КАК ОстаткиНоменклатурыОстатки ПО (ОстаткиНоменклатурыОстатки.Номенклатура = спрНоменклатура.Ссылка) ГДЕ спрНоменклатура.Ссылка = &Номенклатура СГРУППИРОВАТЬ ПО спрНоменклатура.Ссылка |
|||
11
Ёпрст
05.02.14
✎
12:05
|
(9) открой проводки по документу, подумай, сколько там проводок с субконто Номенклатура.. вот с каждой из них будет соединение по условию на Номенклатура.. Тебе точно оно надо ?
:) Или мот данные нужны, только с одной какой-то конкретной проводки, например. Подумай. |
|||
12
Wobland
05.02.14
✎
12:05
|
вот тебе результаты. думай
http://i.imgur.com/0b4xCav.png |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |