Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
23 ноя 2024, 02:30

Расчет "Итого" в справочнике

Автор Davids, 08 фев 2011, 13:59

0 Пользователей и 1 гость просматривают эту тему.

progmikon

Цитата: Davids от 08 фев 2011, 22:46
спасибо..еще кое-что подскажите пжлста..имеется два идентичных справочника..нужно сравнить их по этому самому реквизиту Итого..делаю примерно так
Спр.ВыбратьЭлементы();
Пока Спр.Получитьэлемент()=1 Цикл
Если Итого <> Спр.Итого тогда Сообщить  () ;

сравнивается только один элемент. подскажите где ошибка? второй цикл добавить?
Что значит сравнивается только одни элемент?

Davids

Цитировать
Что значит сравнивается только одни элемент?
Происходит перебор каждого сотрудника в одном справочнике, но каждый сравнивается только с первым сотрудником во втором справочнике

progmikon

Цитата: Davids от 09 фев 2011, 11:45
Цитировать
Что значит сравнивается только одни элемент?
Происходит перебор каждого сотрудника в одном справочнике, но каждый сравнивается только с первым сотрудником во втором справочнике
Так в коде, который вы выше привели значение переменной Итого последовательно сравнивается со значением реквизита Итого справочника. Про второй справочник в коде ни слова.

Davids

Согласен, но как это реализовать? пытаюсь изобразить так..

Спр = СоздатьОбъект();
Спр2 = СоздатьОбъект();
Спр.ВыбратьЭлементы();
Спр2.ВыбратьЭлементы();
Пока Спр.Получитьэлемент()=1 Цикл
Пока Спр2.Получитьэлемент()=1 Цикл
Если Итого <> Спр.Итого тогда Сообщить  () ;
результат тот же..

progmikon

Цитата: Davids от 09 фев 2011, 11:58
Согласен, но как это реализовать? пытаюсь изобразить так..

Спр = СоздатьОбъект();
Спр2 = СоздатьОбъект();
Спр.ВыбратьЭлементы();
Спр2.ВыбратьЭлементы();
Пока Спр.Получитьэлемент()=1 Цикл
Пока Спр2.Получитьэлемент()=1 Цикл
Если Итого <> Спр.Итого тогда Сообщить  () ;
результат тот же..
Ну уж если вы решили так их перебирать, то и сравнивать нужно
Если Спр2.Итого <> Спр.Итого тогда Сообщить  () ;
В своем цикле вы все время сравниваете значение реквизита с одним и тем же значением.

Davids

Цитировать
Ну уж если вы решили так их перебирать, то и сравнивать нужно
Если Спр2.Итого <> Спр.Итого тогда Сообщить  () ;
В своем цикле вы все время сравниваете значение реквизита с одним и тем же значением.
так тоже пробовал..рез-т тот же..при чем такая особенность сравнивается активная строка, т.е. которая выбрана. если не выбрана, то сравнивается первая..
кнопка "сравнить" находится в справочнике фактических работ

progmikon

Цитата: Davids от 09 фев 2011, 12:14
Цитировать
Ну уж если вы решили так их перебирать, то и сравнивать нужно
Если Спр2.Итого <> Спр.Итого тогда Сообщить  () ;
В своем цикле вы все время сравниваете значение реквизита с одним и тем же значением.
так тоже пробовал..рез-т тот же..при чем такая особенность сравнивается активная строка, т.е. которая выбрана. если не выбрана, то сравнивается первая..
кнопка "сравнить" находится в справочнике фактических работ
При таком коде вообще значения не имеет какая строка где-то выделена.

Спр = СоздатьОбъект("Справочник.КакойТо");
Спр2 = СоздатьОбъект("Справочник.ТакойТо");
Спр.ВыбратьЭлементы();
Спр2.ВыбратьЭлементы();
Пока Спр.Получитьэлемент()=1 Цикл
Пока Спр2.Получитьэлемент()=1 Цикл
Если Спр2.Итого <> Спр.Итого тогда
Сообщить  () ;
КонецЕсли;
КонецЦикла;
Конеццикла;

Итого - реквизит справочника?

Davids

Цитировать
Итого - реквизит справочника?
да! все верно - код такой..никак не пойму что не так..

progmikon

Цитата: Davids от 09 фев 2011, 12:42
Цитировать
Итого - реквизит справочника?
да! все верно - код такой..никак не пойму что не так..
Кстати, а что он выводит-то? При этом коде он должен много чего насообщать.

Davids

Цитировать
Кстати, а что он выводит-то? При этом коде он должен много чего насообщать.
Например 10 сотрудников..начинается с Иванова и выходит 10 раз "Работы Иванова не соответствуют плановым"

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск