7.7 Слишком много параметров передано при вызове функции/процедуры объекта

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем chehonte, 11 янв 2012.

  1. TopicStarter Overlay
    chehonte
    Offline

    chehonte Опытный в 1С

    Регистрация:
    26 фев 2007
    Сообщения:
    174
    Симпатии:
    0
    Баллы:
    26
    Помогите разобраться.

    1С.7.7
    Выдает сообщение "Слишком много параметров передано при вызове функции/процедуры объекта"

    на эту строку:

    ТаблицаСписываемыхМПЗ.ЦенаМ = (БИ10.СКД(Нормы.Элемент.СубСчет10, "С",, Нормы.Элемент)) / (БИ10.СКД(Нормы.Элемент.СубСчет10, "К",, Нормы.Элемент));

    Почему? :angry:
  2. TopicStarter Overlay
    chehonte
    Offline

    chehonte Опытный в 1С

    Регистрация:
    26 фев 2007
    Сообщения:
    174
    Симпатии:
    0
    Баллы:
    26
    код:
    ТаблицаСписываемыхМПЗ = СоздатьОбъект("ТаблицаЗначений");
    ТаблицаСписываемыхМПЗ.НоваяКолонка("МПЗ");
    ТаблицаСписываемыхМПЗ.НоваяКолонка("Количество", "Число", 15, 3);
    ТаблицаСписываемыхМПЗ.НоваяКолонка("ЦенаМ", "Число", 15, 2);

    БИ10 = СоздатьОбъект("БухгалтерскиеИтоги");
    БИ10.ВключатьСубсчета(-1);
    БИ10.ВыполнитьЗапрос(,ТекущийДокумент(), "10",,,,,5);

    Нормы = СоздатьОбъект("Справочник.НормыРасходов");
    Нормы.ИспользоватьДату(ДатаДок);

    ВыбратьСтроки();
    Пока ПолучитьСтроку() = 1 Цикл
    Нормы.ИспользоватьВладельца(Товар);
    Нормы.ВыбратьЭлементы();
    Пока Нормы.ПолучитьЭлемент() = 1 Цикл
    Если (Нормы.КолПрод = 0) или (Нормы.ПометкаУдаления() = 1) Тогда
    Иначе
    КоличествоМПЗ = Количество * (Нормы.Норма / Нормы.КолПрод); //какая-то норма
    Если КоличествоМПЗ > 0 Тогда
    ТаблицаСписываемыхМПЗ.НоваяСтрока();
    ТаблицаСписываемыхМПЗ.МПЗ = Нормы.Элемент;
    ТаблицаСписываемыхМПЗ.Количество = КоличествоМПЗ;
    ТаблицаСписываемыхМПЗ.ЦенаМ = (БИ10.СКД(Нормы.Элемент.СубСчет10, "С",, Нормы.Элемент)) / (БИ10.СКД(Нормы.Элемент.СубСчет10, "К",, Нормы.Элемент));
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;
    КонецЦикла;
  3. Requin
    Offline

    Requin Опытный в 1С

    Регистрация:
    10 май 2010
    Сообщения:
    1.911
    Симпатии:
    2
    Баллы:
    29
    У вас получается режим запроса, а там в методе СКД только один параметр (тип суммы).
  4. TopicStarter Overlay
    chehonte
    Offline

    chehonte Опытный в 1С

    Регистрация:
    26 фев 2007
    Сообщения:
    174
    Симпатии:
    0
    Баллы:
    26
    Подскажите как сделать так, чтобы эта строка работала
    ТаблицаСписываемыхМПЗ.ЦенаМ = (БИ10.СКД(Нормы.Элемент.СубСчет10, "С",, Нормы.Элемент)) / (БИ10.СКД(Нормы.Элемент.СубСчет10, "К",, Нормы.Элемент));

    Но с заданным периодом. Начало и Конец периода - ДатаДокумента.

    Если убрать строки:
    БИ10.ИспользоватьСубконто(ВидыСубконто.Материалы, Нормы, 2);
    БИ10.ВключатьСубсчета(-1);
    БИ10.ВыполнитьЗапрос(,ТекущийДокумент(), "10",,,,, "СК");
    все работает.
    Но расчет по концу периода. Если понадобиться спустя время, что-то поправить, расчет будет не верный.
  5. Requin
    Offline

    Requin Опытный в 1С

    Регистрация:
    10 май 2010
    Сообщения:
    1.911
    Симпатии:
    2
    Баллы:
    29
    Используйте вместо запроса (метод ВыполнитьЗапрос) расчет временных итогов (метод Рассчитать).
  6. TopicStarter Overlay
    chehonte
    Offline

    chehonte Опытный в 1С

    Регистрация:
    26 фев 2007
    Сообщения:
    174
    Симпатии:
    0
    Баллы:
    26
    Попробовал:
    Если КоличествоМПЗ > 0 Тогда
    ТаблицаСписываемыхМПЗ.НоваяСтрока();
    ТаблицаСписываемыхМПЗ.МПЗ = Нормы.Элемент;
    ТаблицаСписываемыхМПЗ.Количество = КоличествоМПЗ;
    БИ10.Рассчитать(ДатаДок,ДатаДок);
    ТаблицаСписываемыхМПЗ.ЦенаМ = (БИ10.СКД(Нормы.Элемент.СубСчет10, "С",, Нормы.Элемент)) / (БИ10.СКД(Нормы.Элемент.СубСчет10, "К",, Нормы.Элемент));
    КонецЕсли;

    В отладчике видно:
    би10.НачДата = Ошибка в выражении!
    би10.КонДата = Ошибка в выражении!
    би10.рассчитать(ДатаДок,ДатаДок) = 1
    датадок = '14.12.11'

    Почему не устанавливается дата?


    Если БИ10.ВыполнитьЗапрос(,ТекущийДокумент(), "10",,,,, "СК"); то дата работает, но не работает все остальное. :angry:
  7. Requin
    Offline

    Requin Опытный в 1С

    Регистрация:
    10 май 2010
    Сообщения:
    1.911
    Симпатии:
    2
    Баллы:
    29
    А почему решили, что не устанавливается? Если в отладчике написано Ошибка в выражении, то это ошибка, а не неустановленная дата. Метод Рассчитать выдает результат 1 - это значит, что расчет выполнен.
    А НачДата и КонДата - параметры относятся к режиму запроса.
  8. TopicStarter Overlay
    chehonte
    Offline

    chehonte Опытный в 1С

    Регистрация:
    26 фев 2007
    Сообщения:
    174
    Симпатии:
    0
    Баллы:
    26

    СПАСИБО! На самом деле все работает! :angry:

    Подскажите еще, если можно.
    ТаблицаСписываемыхМПЗ = СоздатьОбъект("ТаблицаЗначений");
    ТаблицаСписываемыхМПЗ.НоваяКолонка("МПЗ");
    ТаблицаСписываемыхМПЗ.НоваяКолонка("Количество", "Число", 15, 3);
    ТаблицаСписываемыхМПЗ.НоваяКолонка("ЦенаМ", "Число", 15, 2);

    Когда я делаю ТаблицаСписываемыхМПЗ.Свернуть("МПЗ", "Количество");

    То пропадает колонка "ЦенаМ"

    Почему?

    Нужно: В таблице одинаковые названия суммировать количество.
  9. Requin
    Offline

    Requin Опытный в 1С

    Регистрация:
    10 май 2010
    Сообщения:
    1.911
    Симпатии:
    2
    Баллы:
    29
    Пропадает потому что колонки нет ни в группировочных, ни в суммируемых колонках.
    Так делайте:
    Код:
    ТаблицаСписываемыхМПЗ.Свернуть("МПЗ,ЦенаМ", "Количество");
    
    [off]
    Для спасибо кнопка [​IMG] есть. :angry: [/off]

Поделиться этой страницей