Вопрос № 130817: Здравствуйте эксперты вопрос такой, вообщем нужно отобрать элементы по реквизиту, значение реквизита берется из таблицы значений так вот при выполнении программа берет почему то только первый элемент в списке.В чем может быть ошибка?
Алгорит...Вопрос № 130959: Уважаемые эксперты! Такой вопрос . В 1с7,7 , есть начальная дата, есть конечная дата работы сотрудника в организации. Необходимо получить стаж его работы в годах, месяцах и днях. Как сделать? Форматировать дату просто. Но ведь надо вычесть из конечно...Вопрос № 130978: Помогите пожалуйсто, я создал многоуровневый справочник и мне надо сделать отбор элементов по уровням, но не как не получается
определить уровень элемента, как это сделать?...
Вопрос № 130.817
Здравствуйте эксперты вопрос такой, вообщем нужно отобрать элементы по реквизиту, значение реквизита берется из таблицы значений так вот при выполнении программа берет почему то только первый элемент в списке.В чем может быть ошибка?
Алгоритм
1. заполняется 1 таблица значений
2. Выполняется отбор по реквизиту
3. Заполняется 2 таблица значений
См приложение
Приложение:
Отправлен: 06.04.2008, 15:28
Вопрос задал: DiamondES (статус: Посетитель)
Всего ответов: 3 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Дрёма
Здравствуйте, DiamondES!
Если ты явно указываешь строку и номер ТЗ, то зачем перд этим ВыбираешьСтроки ТЗ? Попробуй без выбора строк. Это лишнее.
Ответ отправил: Дрёма (статус: 5-ый класс)
Ответ отправлен: 06.04.2008, 16:14
Для Ном1 = 1 По Размер Цикл
Состояние("Обрабатывается строка "+Ном1+"!");
//ТЗ.ВыбратьСтроки(); - Иначе ТЗ - позиционируется на 1 строку
ЗН = ТЗ.ПолучитьЗначение(Ном1,"Наименование");
Спр.ВыбратьЭлементыПоРеквизиту("Абонент",ЗН,1,0);
Пока Спр.ПолучитьЭлемент() = 1 Цикл
ТЗ2.НоваяСтрока();
ТЗ2.Наименование = Спр.Наименование;
ТЗ2.Показ = Спр.Расход.Получить(ДатаДок);
Уважаемые эксперты! Такой вопрос . В 1с7,7 , есть начальная дата, есть конечная дата работы сотрудника в организации. Необходимо получить стаж его работы в годах, месяцах и днях. Как сделать? Форматировать дату просто. Но ведь надо вычесть из конечной начальную. А как форматировать разницу?
Отправлен: 07.04.2008, 10:21
Вопрос задал: Tarch (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Командин Константин Евгениевич
Здравствуйте, Tarch!
разница дат дает количество дней... ну а дальше если не критично периоды с праздниками, отпусками и тд.... то можно посчитать примерно так (при условии что в месяце 30 дней, а в году 365 дней)
Разница = НачальнаяДата - Конечная;
КоличествоМесяцев = Цел(Разница / 30);
КоличествоДней = Разница-(КоличествоМесяцев*30);
КоличествоЛет = Цел(КоличествоМесяцев/12);
КоличествоМесяцев = КоличествоМесяцев - (КоличествоЛет*12);
Ответ отправил: Командин Константин Евгениевич (статус: 2-ой класс)
Ответ отправлен: 07.04.2008, 10:56 Оценка за ответ: 4 Комментарий оценки: Спасибо! Но тут возникает один вопрос. В каком-то месяце 31 день, а в каком-то году 366 дней.Будут расхождения, может и не критичные. А все-таки есть-ли метод точного расчета?
Лет = 0; Месяцев = 0; Дней = 0;
Если Дата1>Дата2 Тогда
ВременнаяДата = Дата1;
Если ДатаЧисло(ВременнаяДата)<ДатаЧисло(Дата2) Тогда
Дней = ВременнаяДата-ДобавитьМесяц(ВременнаяДата,-1);
ВременнаяДата = ДобавитьМесяц(ВременнаяДата,-1);
КонецЕсли;
Если ДатаМесяц(ВременнаяДата)<ДатаМесяц(Дата2) Тогда
ВременнаяДата = ДобавитьМесяц(ВременнаяДата,-12);
Месяцев = 12;
КонецЕсли;
Лет = Макс( ДатаГод (ВременнаяДата)-ДатаГод (Дата2),0);
Месяцев = Макс(Месяцев +ДатаМесяц(ВременнаяДата)-ДатаМесяц(Дата2),0);
Дней = Макс(Дней +ДатаЧисло(ВременнаяДата)-ДатаЧисло(Дата2),0);
// скорректируем отображаемое значение, если "вмешалось" разное количество дней в месяцах
Если Дата2 <> (ДобавитьМесяц(Дата1,-Лет*12-Месяцев)-Дней) Тогда
Дней = Дней + (КонМесяца(Дата2)-НачМесяца(Дата2)) - (КонМесяца(ДобавитьМесяц(Дата1,-1))-НачМесяца(ДобавитьМесяц(Дата1,-1)));
КонецЕсли;
КонецЕсли;
КонецПроцедуры // глРазобратьРазностьДат
думаю назначение переменных понятно, да и код тоже
Ответ отправил: Airyashov (статус: 2-ой класс)
Ответ отправлен: 07.04.2008, 11:17 Оценка за ответ: 5 Комментарий оценки: Код и переменные , понятны , конечно. Большое спасибо, попробую воспользоваться
Вопрос № 130.978
Помогите пожалуйсто, я создал многоуровневый справочник и мне надо сделать отбор элементов по уровням, но не как не получается определить уровень элемента, как это сделать?
Отвечает: Mazay-z
Здравствуйте, Негруцак Александр Владимирович!
Используйте элемент РОДИТЕЛЬ
Напр Если есть Товары->чипсы->lays
то создаете запрос где указываите РОДИТЕЛЬ =чипсы
Извините притмера подрукой нет но их полно в любой конфе или mista.ru в примере склад
Ответ отправил: Mazay-z (статус: 1-ый класс)
Ответ отправлен: 10.04.2008, 19:02