Имя: Пароль:
1C
1С v8
КД 2. Ошибка выбора объектов коллекции
,
0 Альбатрос
 
23.12.13
07:36
ПВД:
        Результат2 = глЗапросSQL.ВыполнитьИнструкцию(ТекстЗапроса);
        
        ИндТаб = СоздатьОбъект("ИндексированнаяТаблица");
        ИндТаб.Загрузить(Результат2);
        
ТаблицаИменРегистров = СоздатьОбъект("ТаблицаЗначений");
ТаблицаИменРегистров.НоваяКолонка("Имя");
ТаблицаИменРегистров.НоваяКолонка("Представление");

ИсходящиеДанные = СоздатьОбъект("СписокЗначений");
        
        УчетДС_ПоПодразделениям = СоздатьОбъект("ТаблицаЗначений");
        УчетДС_ПоПодразделениям.НоваяКолонка("Период");
        УчетДС_ПоПодразделениям.НоваяКолонка("Сумма");
        УчетДС_ПоПодразделениям.НоваяКолонка("БанковскийСчетКасса");
        УчетДС_ПоПодразделениям.НоваяКолонка("Организация");
        УчетДС_ПоПодразделениям.НоваяКолонка("Подразделение");
        УчетДС_ПоПодразделениям.НоваяКолонка("Контрагент");
        
ТаблицаИменРегистров.НоваяСтрока();
ТаблицаИменРегистров.Имя = "УчетДС_ПоПодразделениям";
ТаблицаИменРегистров.Представление = "Учет денежных средств по подразделениям";
ИндТаб.Показать();
ИндТаб.ВыбратьСтроки();
Пока ИндТаб.ПолучитьСтроку() = 1 цикл
    ИсходящиеДанные.УдалитьВсе();
    УчетДС_ПоПодразделениям.УдалитьСТроки();
    
    УчетДС_ПоПодразделениям.НоваяСтрока();
    УчетДС_ПоПодразделениям.Период = ИндТаб.ДатаДок;
    УчетДС_ПоПодразделениям.Сумма = ИндТаб.СуммаДокумента;
    УчетДС_ПоПодразделениям.БанковскийСчетКасса = ИндТаб.Клиент;
    УчетДС_ПоПодразделениям.Организация = ИндТаб.Клиент.ЮрЛицо;
    УчетДС_ПоПодразделениям.Контрагент = ИндТаб.Фирма;
    
    ИсходящиеДанные.Установить("Дата",ИндТаб.ДатаДок);
    ИсходящиеДанные.Установить("ТаблицаРегистровНакопления",ТаблицаИменРегистров);
    ИсходящиеДанные.Установить("УчетДС_ПоПодразделениям", УчетДС_ПоПодразделениям);
    ВыгрузитьПоПравилу(,, ИсходящиеДанные,, "КорректировкаЗаписейРегистров");
КонецЦикла;


Вылетает ошибка из сабжа. Что не так?
1 MKZM
 
23.12.13
07:41
Мало данных.
2 MKZM
 
23.12.13
07:44
Вообще - много непонятного
3 Defender aka LINN
 
23.12.13
07:44
(0) Данные, выгружаемые по правилу - ПЕРВЫЙ параметр.
4 MKZM
 
23.12.13
07:47
Аа, так это 7
5 Альбатрос
 
23.12.13
07:54
(3) ВыгрузитьПоПравилу(ИсходящиеДанные,,,, "КорректировкаЗаписейРегистров"); - Та же самая ошибка.

А вообще из примера взял, в примере "Исходящие данные" задаются 3 параметром, а первый пустой.
6 Defender aka LINN
 
23.12.13
07:55
(5) Где вы, ять, такие примеры берете?
7 Альбатрос
 
23.12.13
07:56
(6) Типовой из КД "Перенос остатков товара" =)

Запрос = Новый запрос();
Запрос.текст = "ВЫБРАТЬ
|        ОстаткиТоваровНаСкладахОстатки.Номенклатура КАК Номенклатура,
|        ОстаткиТоваровНаСкладахОстатки.КоличествоОстаток КАК Количество
|    ИЗ
|        РегистрНакопления.ОстаткиТоваровНаСкладах.Остатки КАК ОстаткиТоваровНаСкладахОстатки";

Выборка = запрос.Выполнить().Выбрать();

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

ДатаВыгрузки = ТекущаяДата();

Пока Выборка.Следующий() Цикл
    
    СтрокаТоваров = ТоварыНаСкладах.Добавить();
    СтрокаТоваров.Номенклатура = Выборка.Номенклатура;
    СтрокаТоваров.Количество = Выборка.Количество;
    СтрокаТоваров.Период = ДатаВыгрузки;
    
КонецЦикла;

ТаблицаИменРегистров = Новый ТаблицаЗначений();
ТаблицаИменРегистров.Колонки.Добавить("Имя");
ТаблицаИменРегистров.Колонки.Добавить("Представление");

СтрокаТаблицы = ТаблицаИменРегистров.Добавить();
СтрокаТаблицы.Имя = "ОстаткиТоваровНаСкладах";
СтрокаТаблицы.Представление = "Остатки товаров на складах";


ИсходящиеДанные = Новый Структура;
ИсходящиеДанные.Вставить("Номер", "001");
ИсходящиеДанные.Вставить("Дата", ДатаВыгрузки);
ИсходящиеДанные.Вставить("Комментарий", "Перенос остатков товаров на " + Строка(ДатаВыгрузки));

ИсходящиеДанные.Вставить("ТаблицаРегистровНакопления", ТаблицаИменРегистров);
ИсходящиеДанные.Вставить("ОстаткиТоваровНаСкладах", ТоварыНаСкладах);


ВыгрузитьПоПравилу(, , ИсходящиеДанные, , "ПереносОстатковТоваров");
8 Defender aka LINN
 
23.12.13
07:58
(7) В справке к КД такого нет, я гарантирую это.
В общем, RTFM
9 Альбатрос
 
23.12.13
08:47
(8) Ну да, в справке по-другому. Но и если первым параметром указывать, то та же самая ошибка.
10 Defender aka LINN
 
23.12.13
08:48
(9) Ошибка какбе символизирует нам, что КД ожидает увидеть в неком свойстве коллекцию. А у тебя там ХЗ что.
11 Альбатрос
 
23.12.13
09:00
(10) В это некое свойство я передаю ТЗ. ТЗ не пустая однозначно. ТЗ же является коллекцией, правильно?
12 Defender aka LINN
 
23.12.13
09:22
(11) Рекомендую таки изучить правило под лупой. Что-то ты там делаешь не так
13 Йохохо
 
23.12.13
09:54
(0) Вы пытаетесь передать Объект, который хотите, чтобы конвертация обошла как коллекцию, из которой выбрала Объект
14 Альбатрос
 
23.12.13
10:56
(13) Не понял ))
15 Йохохо
 
23.12.13
11:13
(14) протупил я, смотри в отладчике, в 7 проще чем в 8
16 Альбатрос
 
23.12.13
11:54
Вообщем, получилось выгруэить все же вот так:
ВыгрузитьПоПравилу(,, ИсходящиеДанные,, "КорректировкаЗаписейРегистров");

То есть ТЗ передать 3 параметром. при этом в ПВД очистил поле "Правило конвертации".
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн