![]() |
![]() |
![]() |
|
помогите КД. произвольный алгоритм. | ☑ | ||
---|---|---|---|---|
0
zladenuw
16.03.12
✎
16:32
|
Делаю выборку. но получаю 1 документ. хотя должно быть больше.
В чем может быть причина :( Делал на примере Книга знаний: Как правильно пользоваться переносом остатков 7.7 - 8.0 с помощью КД 2.0; |
|||
1
GenV
16.03.12
✎
16:40
|
Убери галку в ПКО "Запоминать выгруженные объекты"
|
|||
2
PVV65
16.03.12
✎
16:42
|
(0) Если делал по Книга знаний: Как правильно пользоваться переносом остатков 7.7 - 8.0 с помощью КД 2.0; , то должен получиться один документ.
|
|||
3
zladenuw
16.03.12
✎
16:42
|
я немного переделал.
Сделал вот так. ВыборкаДанных = СоздатьОбъект("ТаблицаЗначений"); ВыборкаДанных.НоваяКолонка("Дата"); ВыборкаДанных.НоваяКолонка("Фирма"); ВыборкаДанных.НоваяКолонка("Склад"); ВыборкаДанных.НоваяКолонка("Поставщик"); ВыборкаДанных.НоваяКолонка("КатегорияЦен"); ВыборкаДанных.НоваяКолонка("ВидОстатков"); ВыборкаДанных.НоваяКолонка("Статус"); ВыборкаДанных.НоваяКолонка("ВидТоваров"); ВыборкаДанных.НоваяКолонка("ВидНДС"); ВыборкаДанных.НоваяКолонка("ТабличнаяЧасть"); Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Партии) |Период с (ДатаОкончания) по (ДатаОкончания); |Фирма = Регистр.ПартииТоваров.Фирма; |Поставщик = Регистр.ПартииТоваров.Поставщик; |МестоХранения = Регистр.ПартииТоваров.МестоХранения; |Товар = Регистр.ПартииТоваров.Товар; |Статус = Регистр.ПартииТоваров.Статус; |Поставка = Регистр.ПартииТоваров.Поставка; |ПрихДокумент = Регистр.ПартииТоваров.ПрихДокумент; |ОстатокТовара = Регистр.ПартииТоваров.ОстатокТовара; |Стоимость = Регистр.ПартииТоваров.Стоимость; |ПродСтоимость = Регистр.ПартииТоваров.ПродСтоимость; |НДС = Регистр.ПартииТоваров.НДС; |Функция ОстатокТовараКонОст = КонОст(ОстатокТовара); |Условие (ПустоеЗначение(Фирма)=0); |Группировка Фирма Без Групп; |Группировка Поставщик Без Групп; |Группировка МестоХранения Без Групп; |Группировка Товар Без Групп; |"//}}ЗАПРОС ; ШкалаСтавок = СоздатьОбъект("Справочник.ШкалаСтавок"); ШкалаСтавок.ИспользоватьДату(ДатаОкончания); лШакалаСтавки = ?(ШкалаСтавок.НайтиПоКоду("НДС20")=1,ШкалаСтавок.ТекущийЭлемент(),""); Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Отказ = 1; Возврат 1; //В 8.0/8.1 Возврат использовать нельзя! КонецЕсли; Пока Запрос.Группировка(1) = 1 Цикл Пока Запрос.Группировка(2) = 1 Цикл Пока Запрос.Группировка(3) = 1 Цикл ВыборкаДанных.НоваяСтрока(); ВыборкаДанных.Дата = ДатаОкончания; //ДатаОкончания - реквизит обработки "Выгрузка данных" ВыборкаДанных.Фирма = Запрос.Фирма; ВыборкаДанных.Склад = Запрос.МестоХранения; ВыборкаДанных.Поставщик = Запрос.Поставщик; ВыборкаДанных.КатегорияЦен = Запрос.ПрихДокумент.КатегорияЦен; ВыборкаДанных.ВидОстатков = 1; ВыборкаДанных.Статус = 1; ВыборкаДанных.ВидТоваров = Перечисление.ВидыТМЦ.Товар; ВыборкаДанных.ВидНДС = лШакалаСтавки; ВыборкаДанных.ТабличнаяЧасть = СоздатьОбъект("ТаблицаЗначений"); ТабличнаяЧасть = ВыборкаДанных.ТабличнаяЧасть; ТабличнаяЧасть.НоваяКолонка("Товар"); ТабличнаяЧасть.НоваяКолонка("Код"); ТабличнаяЧасть.НоваяКолонка("Кво"); ТабличнаяЧасть.НоваяКолонка("Ед"); ТабличнаяЧасть.НоваяКолонка("Коэффициент"); ТабличнаяЧасть.НоваяКолонка("ЦенаБезНДС"); ТабличнаяЧасть.НоваяКолонка("ЦенаСНДС"); ТабличнаяЧасть.НоваяКолонка("СуммаБезНДС"); ТабличнаяЧасть.НоваяКолонка("СуммаСНДС"); ТабличнаяЧасть.НоваяКолонка("ЦенаБезНДСРеал"); ТабличнаяЧасть.НоваяКолонка("ЦенаСНДСРеал"); ТабличнаяЧасть.НоваяКолонка("СуммаБезНДСРеал"); ТабличнаяЧасть.НоваяКолонка("СуммаСНДСРеал"); Пока Запрос.Группировка(4) = 1 Цикл ТабличнаяЧасть.НоваяСтрока(); ТабличнаяЧасть.Код = Запрос.Товар.Код; ТабличнаяЧасть.Товар = Запрос.Товар; ТабличнаяЧасть.Кво = Запрос.ОстатокТовараКонОст; ТабличнаяЧасть.Ед = Запрос.Товар.БазоваяЕдиница; ТабличнаяЧасть.Коэффициент = Запрос.Товар.ЕдиницаПоУмолчанию.Коэффициент; ТабличнаяЧасть.ЦенаБезНДС = Запрос.Стоимость; ТабличнаяЧасть.ЦенаСНДС = Запрос.Стоимость; ТабличнаяЧасть.СуммаБезНДС = Запрос.Стоимость*Запрос.ОстатокТовараКонОст; ТабличнаяЧасть.СуммаСНДС = Запрос.Стоимость*Запрос.ОстатокТовараКонОст; ТабличнаяЧасть.ЦенаБезНДСРеал = Запрос.ПродСтоимость; ТабличнаяЧасть.ЦенаСНДСРеал = Запрос.ПродСтоимость; ТабличнаяЧасть.СуммаБезНДСРеал = Запрос.ПродСтоимость*Запрос.ОстатокТовараКонОст; ТабличнаяЧасть.СуммаСНДСРеал = Запрос.ПродСтоимость*Запрос.ОстатокТовараКонОст; КонецЦикла; КонецЦикла; КонецЦикла; КонецЦикла; |
|||
4
zladenuw
16.03.12
✎
16:44
|
да и написано там
Система, определив, что ВыборкаДанных имеет тип "ТаблицаЗначений" начнет обычный обход этой таблицы через ВыбратьСтроки()/ПолучитьСтроку() и для каждой строки будет вызывать процедуру "ВыгрузитьПоПравилу". Ведь я должен получить столько доков сколько строк в ТЗ. А получил только 1 документ :( |
|||
5
zladenuw
16.03.12
✎
16:45
|
ПКО поставил поиск по дате, фирме, поставщик, категорияцен. может тут проблема?
|
|||
6
zladenuw
16.03.12
✎
16:45
|
(1) галка не стоит
|
|||
7
PVV65
16.03.12
✎
16:55
|
(3) Вроде должен создавать. Надо в отладчик.
|
|||
8
zladenuw
16.03.12
✎
17:05
|
При выгрузке заметил. выгружаю 1 раз. то видно что обработка пробегает по правилам выгрузки. а дальше только такое сообщение.
Выгрузка объекта выборки: ТаблицаЗначений (ТаблицаЗначений) Конвертация объекта или получение ссылки: ТаблицаЗначений (ТаблицаЗначений) а Перебора по правилам нет |
|||
9
PLUT
гуру
16.03.12
✎
17:06
|
(0) в ПКО в обормотчик ПередВыгрузкой например
КлючВыгружаемыхДанных = Строка(Источник.Дата)+Строка(Источник.Склад); чтобы уникальный ключ для каждой строки ТЗ |
|||
10
zladenuw
16.03.12
✎
17:12
|
(9) и где этот ключ дальше использовать?
|
|||
11
PLUT
гуру
16.03.12
✎
17:14
|
(10) скорми обормотке ПередВыгрузкой в ПКО
|
|||
12
PVV65
16.03.12
✎
17:14
|
Посмотри файл выгрузки. Сколько там доков?
|
|||
13
PLUT
гуру
16.03.12
✎
17:18
|
+(11) из СП по обормотчикам:
КлючВыгружаемыхДанных - Произвольный. По умолчанию - это ссылка на объект Источник, а если Источник неопределен, то используется ИмяПКО (подразумевается, что правило описывает в таком случае один объект-приемник). Данный параметр необходимо использовать если одному объекту источнику могут соответствовать несколько объектов приемника, например, в зависимости от входящих данных, или в случае, когда объект приемник полностью заполняется из входящих данных (например по результатам запроса), а объект источник, как таковой отсутствует. |
|||
14
zladenuw
16.03.12
✎
17:18
|
(13) все понял. спс
|
|||
15
zladenuw
16.03.12
✎
17:23
|
Было дело в ключе. выгрузка еще идет. это уже радует.
То есть можно было добавил номер в выборку данных. и в пко установить вот так КлючВыгружаемыхДанных = Источник.Номер |
|||
16
zladenuw
16.03.12
✎
17:26
|
а что может быть за ошибка.
Ошибка выбора объектов коллекции ? |
|||
17
PLUT
гуру
16.03.12
✎
17:28
|
(16) это не ошибка, а фича. читай про если Источник неопределен...
|
|||
18
PLUT
гуру
16.03.12
✎
17:32
|
(16) текст ошибки какой?
|
|||
19
zladenuw
16.03.12
✎
17:42
|
(18) Ошибка выбора объектов коллекции
|
|||
20
PLUT
гуру
16.03.12
✎
17:53
|
(19) проверь в ПКО соответствие полей твой ТЗ из произв.алгоритма и ТЧ Приемника
что-то подозрительные названия "Кво", "Ед" у документа-Приемника точно также реквизиты ТЧ ? O_o |
|||
21
zladenuw
16.03.12
✎
17:55
|
(20).
Да кажись нашел в чем причина. ВыборкаДанных.КатегорияЦен = Запрос.ПрихДокумент.КатегорияЦен; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |