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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
88 Сообщений
AIFrame AIFrame
50 Сообщений
alexandr_ll
40 Сообщений
alex0402
30 Сообщений
wise wise
19 Сообщений
BuhRust
15 Сообщений
byte777
14 Сообщений
LexaK
14 Сообщений
pavl_vs
14 Сообщений
Weidermail
13 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal