Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
18 Дек 2017, 23:32
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Помогите написать запрос  (Прочитано 6814 раз)

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

Оффлайн Люсёк

  • ***
  • Сообщений: 109
  • РЕПУТАЦИЯ: 3
  • КПД: 3%
  • Регистрация: 2010-10-11
  • Сайт: 
как написать запрос, чтобы он брал данные из регистра сведений Показатели для расчета заработной платы за определенный период и по определенному подразделению организации. Сравнивал их с соответствующими значениями в табличной части документа Начисление зарплаты и если находил не верное значение, то заменял его  значением соответствующим данному подразделению из регистра сведений. Т.е, есть организация. Вней есть подразделения (Участок №1, Участок №2,Участок №3). Работники организации, в течении месяца, произвольноперемещаются по подразделениям. В организации оплачивается питание. Определенная сумма в день в зависимости от подразделения на котором в этот день работал сотрудник. Например, Участок №1 - 100 руб, Участок №2 - 120 руб. в день, и на Участке №3 - 80 руб в день. Информация о размере оплаты  питания и подразделении на котором она действует хранится в регистре сведений показатели для расчета заработной платы. надо написать запрос, который в созданном документе начисление заработной платы будет просматривать табличную часть и сравнивать соответствует ли данный размер оплаты питания подразделению и если нет, то заменял его нужным для этого подразделения из регистра сведений.


Оффлайн progmikon

  • *****
  • Сообщений: 2090
  • РЕПУТАЦИЯ: 371
  • КПД: 18%
  • Регистрация: 2010-10-09
  • Компания: http://progmikon.blogspot.com/
  • Профессия: Программист 1С
На самом деле очень хотелось бы увидеть ваш запрос, так и проще и быстрее.

Сразу хочу отметить то, что запросом мы получаем выборку данных. Обрабатывая которую, можно изменять данные в базе. Сам запрос данные изменять не может.

Возвращаясь к вашей проблеме:
Вот примерный текст запроса, а точнее его простейший вариант. Безусловно, конкретные имена реквизитов и объектов зависят от вашей конфигурации:
"ВЫБРАТЬ
|   НачислениеЗарплатыРаботникамОрганизацийНачисления.ПодразделениеОрганизации,
|   НачислениеЗарплатыРаботникамОрганизацийНачисления.Сумма,
|   ПоказателиДляРасчетаЗПСрезПоследних.Подразделение,
|   ПоказателиДляРасчетаЗПСрезПоследних.Сумма,
|   НачислениеЗарплатыРаботникамОрганизацийНачисления.Ссылка
|ИЗ
|   Документ.НачислениеЗарплатыРаботникамОрганизаций.Начисления КАК НачислениеЗарплатыРаботникамОрганизацийНачисления
|      ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПоказателиДляРасчетаЗП.СрезПоследних(&ДатаОкончания, ) КАК ПоказателиДляРасчетаЗПСрезПоследних
|      ПО НачислениеЗарплатыРаботникамОрганизацийНачисления.ПодразделениеОрганизации = ПоказателиДляРасчетаЗПСрезПоследних.Подразделение
|ГДЕ
|   НачислениеЗарплатыРаботникамОрганизацийНачисления.Ссылка.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
|   И НачислениеЗарплатыРаботникамОрганизацийНачисления.Сумма <> ПоказателиДляРасчетаЗПСрезПоследних.Сумма";

После выполнения запроса необходимо получить объект и уже в нем менять значения реквизитов.

А чтобы ускорить решение вашей проблемы - опишите, на каком этапе вы остановились, а мы вам поможем.

Оффлайн Люсёк

  • ***
  • Сообщений: 109
  • РЕПУТАЦИЯ: 3
  • КПД: 3%
  • Регистрация: 2010-10-11
  • Сайт: 
Запрос=Новый Запрос;
   Запрос.Текст=
                 "ВЫБРАТЬ
                 |   ПериодическиеЗначенияПоказателейСхемМотивацииСрезПоследних.Период,
                 |   ПериодическиеЗначенияПоказателейСхемМотивацииСрезПоследних.Подразделение,
                 |   ПериодическиеЗначенияПоказателейСхемМотивацииСрезПоследних.Показатель,
                 |   ПериодическиеЗначенияПоказателейСхемМотивацииСрезПоследних.Значение
                 |ИЗ
                 |   РегистрСведений.ПериодическиеЗначенияПоказателейСхемМотивации.СрезПоследних КАК ПериодическиеЗначенияПоказателейСхемМотивацииСрезПоследних
                 |ГДЕ
                 |   ПериодическиеЗначенияПоказателейСхемМотивацииСрезПоследних.Организация.Ссылка = &Ссылка
                 |   И ПериодическиеЗначенияПоказателейСхемМотивацииСрезПоследних.Период = &Дата";
   Запрос.УстановитьПараметр("Ссылка",Организация);
   Запрос.УстановитьПараметр("Дата", (ПериодРегистрации));
   ТЗ=Запрос.Выполнить().Выгрузить();
   ТаблицаНачисления = Начисления.Выгрузить();
   К =    ТаблицаНачисления.Количество();
   Для т=0 по к-1 Цикл
      СтрокаТЧ = ТаблицаНачисления.Получить(т);
   КонецЦикла;

Оффлайн Люсёк

  • ***
  • Сообщений: 109
  • РЕПУТАЦИЯ: 3
  • КПД: 3%
  • Регистрация: 2010-10-11
  • Сайт: 
Я выгрузила данные из запроса в таблицу значений. как теперь сравнить две таблицы?

Оффлайн progmikon

  • *****
  • Сообщений: 2090
  • РЕПУТАЦИЯ: 371
  • КПД: 18%
  • Регистрация: 2010-10-09
  • Компания: http://progmikon.blogspot.com/
  • Профессия: Программист 1С
Вы можете проверять на соответствие сумм в запросе посредством соединений. Посмотрите 2 пост. Если что-то не понятно - обязательно напишите, разберемся.

Оффлайн Люсёк

  • ***
  • Сообщений: 109
  • РЕПУТАЦИЯ: 3
  • КПД: 3%
  • Регистрация: 2010-10-11
  • Сайт: 
А если с помощью циклов и конструкции Если Тогда Иначе?

Для каждого СтрокаТЧ Из ТаблицаНачисления
   Цикл
      Если Это РазмерОплатыПитания=100 Тогда ТекущееПодразделение="Участок№1"
      Иначе Для каждого Тз Из ТаблицаЗначений
         Цикл
            Если Это ТекущееПодразделение= "Участок №2" Тогда РазмерОплатыПитания=120
               ТаблицаНачисления.Вставить(РазмерОплатыПитания)
                  ИначеЕсли Это ТекущееПодразделение= "Участок №3" Тогда РазмерОплатыПитания=80
                       ТаблицаНачисления.Вставить(РазмерОплатыПитания)
                  КонецЕсли   
            КонецЕсли
         КонецЦикла
      КонецЕсли
   КонецЦикла   

Типо такого? правда мне ошибки выдает))) Может вы поправите)))

Оффлайн progmikon

  • *****
  • Сообщений: 2090
  • РЕПУТАЦИЯ: 371
  • КПД: 18%
  • Регистрация: 2010-10-09
  • Компания: http://progmikon.blogspot.com/
  • Профессия: Программист 1С
Для начала
Это????РазмерОплатыПитания=100

Оффлайн progmikon

  • *****
  • Сообщений: 2090
  • РЕПУТАЦИЯ: 371
  • КПД: 18%
  • Регистрация: 2010-10-09
  • Компания: http://progmikon.blogspot.com/
  • Профессия: Программист 1С
Правильно ли я вас понял, что вам нужно заполнить табличную часть документа из регистра? по каждой строке смотрим какое подразделение и пишем сумму из регистра?

Оффлайн Люсёк

  • ***
  • Сообщений: 109
  • РЕПУТАЦИЯ: 3
  • КПД: 3%
  • Регистрация: 2010-10-11
  • Сайт: 
)))))) ну типо просматриваем строчку и если просматриваемый элемент это размер оплаты питания тогда .....

я так и думала что криво))) но я только учусь, поэтому и спрашиваю)

Оффлайн progmikon

  • *****
  • Сообщений: 2090
  • РЕПУТАЦИЯ: 371
  • КПД: 18%
  • Регистрация: 2010-10-09
  • Компания: http://progmikon.blogspot.com/
  • Профессия: Программист 1С
)))))) ну типо просматриваем строчку и если просматриваемый элемент это размер оплаты питания тогда .....

Мы просматриваем строчку табличной части документа?
я так и думала что криво))) но я только учусь, поэтому и спрашиваю)
Ничего страшного, для этого мы здесь и находимся, чтобы вам помогать :)


Теги:
 

Помогите срочно!! В вкладке "Сервис"--> "Журнал регистрации" отражаются все операции как можно определить сделаны ли операции "задним числом" и как вычислить первоначальную информацию какой расчет поменял на другой?

Автор 2ronРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 4304
Последний ответ 24 Дек 2015, 15:34
от дфтын
Помогите подобрать Back-office и Front-office

Автор avrnskРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 5565
Последний ответ 07 Сен 2010, 12:01
от mohock
Помогите с отчётами в УТ 10.3. (Ведомость по товарам и ведомость по заказам)

Автор chum710Раздел Пользователям "1С - Предприятие 8"

Ответов: 2
Просмотров: 5903
Последний ответ 28 Мар 2012, 13:02
от chum710
Помогите с отчетом "Валовая прибыль"

Автор Dm109Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 4
Просмотров: 4399
Последний ответ 10 Сен 2015, 13:57
от Dm109
помогите с отчетом "характеристики контрагентов"

Автор Vasya PovarРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 1987
Последний ответ 07 Дек 2016, 15:53
от Kironten

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
141 Сообщений
AIFrame
73 Сообщений
ilyay ilyay
65 Сообщений
alex0402
52 Сообщений
andron81_81
44 Сообщений
oleg-x
41 Сообщений
MuI_I_Ika MuI_I_Ika
31 Сообщений
BuhRust
31 Сообщений
Golickoff Golickoff
27 Сообщений
alexandr_ll
23 Сообщений

* Кто онлайн

  • Точка Гостей: 293
  • Точка Скрытых: 0
  • Точка Пользователей: 4
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal