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

Помогите создать отчет

Автор Люсёк, 20 окт 2010, 18:17

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

Люсёк

 Подскажите, как сделать, чтобы искалась строчна с нужным сотрудником и по нужному виду расчета???

Для каждого СтрокаТЧ Из ТаблицаНачисления Цикл
      Если СтрокаТЧ.ВидРасчета.Наименование = "Оплата за выезды" ИЛИ СтрокаТЧ.ВидРасчета.Наименование = "Оплата за репетиции"
         ИЛИ СтрокаТЧ.ВидРасчета.Наименование = "Оплата за спектакли" Тогда
         Для каждого СтрокаТЗ из ТЗ Цикл
            НайденнаяСтрокаВТЗ = ТЗ.Найти(СтрокаТЧ.Сотрудник) И НайденнаяСтрокаВТЗ = ТЗ.Найти(СтрокаТЧ.ВидРасчета.Наименование);            
               Если НайденнаяСтрокаВТЗ.Значение<>СтрокаТЧ.Показатель2 Тогда    
                СтрокаТЧ.Показатель2=НайденнаяСтрокаВТЗ.Значение;
           КонецЕсли;
          КонецЦикла;
         КонецЕсли;
   КонецЦикла;

progmikon

Скажите, пожалуйста, что вы хотите получить и где искать?

Люсёк

У меня есть две таблицы значений: ТаблицаНачислений и ТЗ. Я хочу, чтобы для каждой строчки ТаблицыНачислений, в которой есть вид расчета (оплата за репетиции, оплата за спектакли или оплата за выезды), находил строчку в ТЗ с таким же видом расчета и по такому же сотруднику как и в строке ТаблицыНачислений.

progmikon

Эту задачу можно решить, например и запросом.

Люсёк

а как можно без запроса?

progmikon

Можно попробовать так:
Для каждого СтрокаТЧ Из ТаблицаНачисления Цикл
      Если СтрокаТЧ.ВидРасчета.Наименование = "Оплата за выезды" ... Тогда
Отбор = Новый Структура();
Отбор.Вставить("ВидРасчета", СтрокаТЧ.ВидРасчета.Наименование);
Отбор.Вставить("Сотрудник", СтрокаТЧ.Сотрудник);
МассивСтрок = ТЗ .НайтиСтроки(Отбор);

Люсёк

а если нужно не только найти строки, но и заменить значения, если они не совпадают, то как это сделать? Т.е в строке из Таблицы начислений значение оплаты за выезды должно быть таким же как и в ТЗ. Если не совпадает то поменять.

progmikon

Если вы уверены, что строка во второй таблице 1, то
НайденнаяСтрока = МассивСтрок[0];
Если НайденнаяСтрока.Реквизит1<>СтрокаТЧ.Реквизит1 Тогда
СтрокаТЧ.Реквизит1 = НайденнаяСтрока.Реквизит1;

progmikon

Не забудьте поставить проверки на нахождение строки.

Люсёк

Цитата: progmikon от 22 окт 2010, 13:02
Не забудьте поставить проверки на нахождение строки.

Это вы о чем?))

Теги:

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

Рейтинг@Mail.ru

Поиск