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

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

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С
)))))) ну типо просматриваем строчку и если просматриваемый элемент это размер оплаты питания тогда .....

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


Теги:
 

Помогите выразить код Объект.Наименование = Объект.Подразделение + " " + Объект.Должность + " " + Объект.ФизическоеЛицо через строки.

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

Ответов: 3
Просмотров: 1141
Последний ответ 05 Мар 2019, 19:28
от Ledgik
Помогите срочно!! В вкладке "Сервис"--> "Журнал регистрации" отражаются все операции как можно определить сделаны ли операции "задним числом" и как вычислить первоначальную информацию какой расчет поменял на другой?

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

Ответов: 1
Просмотров: 6836
Последний ответ 24 Дек 2015, 15:34
от дфтын
Помогите правильно настроить справочник "Единицы измерения" и "Номенклатура"

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

Ответов: 1
Просмотров: 1361
Последний ответ 23 Янв 2019, 07:21
от Геннадий ОбьГЭС
На фото демонстрируется личная карточка сотрудника, но во столбце "ЗА ЯКИЙ ПЕРІОД " не показывает ничего, как это можно решить, помогите пожалуйста

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

Ответов: 9
Просмотров: 1635
Последний ответ 26 Июл 2018, 17:44
от alex0402
Помогите подобрать Back-office и Front-office

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

Ответов: 1
Просмотров: 7240
Последний ответ 07 Сен 2010, 12:01
от mohock

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
77 Сообщений
oooo800
32 Сообщений
Дмитрий Джей Дмитрий Джей
30 Сообщений
IL2016
29 Сообщений
LexaK
25 Сообщений
antoneus antoneus
25 Сообщений
DmitriyF DmitriyF
17 Сообщений
Ann_
16 Сообщений
мадам брошкина
13 Сообщений
alexandr_ll
12 Сообщений

* Кто онлайн

  • Точка Гостей: 189
  • Точка Скрытых: 0
  • Точка Пользователей: 0

Нет пользователей онлайн.

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal