Имя: Пароль:
1C
1С v8
Сравнение объекта в документе с регистром сведений
0 cdsven
 
19.11.18
09:06
Добрый день, мне поставили таю задачу нужно сравнить запись из объекта на форме документа с записью из регистра сведений, в случае несовпадения вывести ошибку и не проводить документ. Второй день борюсь не как не могу справится.

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

Будьте добры укажите на мою ошибку. заранее огромное спасибо.
1 Fram
 
19.11.18
09:09
Это что за форма записи такая?
Выборка.МестоВыплаты <> Объект.ЗарплатныйПроект <> Выборка.ЗарплатныйПроект
2 cdsven
 
19.11.18
09:10
Пытаюсь сравнить записи.
3 Галахад
 
гуру
19.11.18
09:11
(0) Наверное надо какие-то конкретные данные сравнивать. И какие-то параметры в запрос передавать, уточняющие.
4 Fram
 
19.11.18
09:13
(2) словами объясни что хотел сделать
5 Fram
 
19.11.18
09:18
ПО ВедомостьНаВыплатуЗарплатыВБанк.Ссылка = ЛицевыеСчетаСотрудниковПоЗарплатнымПроектамСрезПоследних.ФизическоеЛицо
                          |        ПО (ВедомостьНаВыплатуЗарплатыВБанк.ЗарплатныйПроект = МестаВыплатыЗарплатыСотрудников.ФизическоеЛицо)

это просто шедевр
6 cdsven
 
19.11.18
09:23
Имеется 2 регистра сведений.
1) ЛицевыеСчетаСотрудниковПоЗарплатнымПроектамСрезПоледних - сюда заносятся истории изменений зарплатах карт сотрудников, а точнее лицевой счет, зарплатный проект(ВТБ,Газпром,Сбербанк),дата начала действия карты.
2) МестаВЫплатыЗарплатыСотдуников - данный регистр содержит текущий зарплатный проект сотрудников.

и Документ ведомостьнавыплатузарплаты - зарплатная ведомость, там выбираем зарплатный проект, в табличной части заносится лицевой счет.

необходимо что бы при ручном добавлении сотрудника в зарплатную ведомость, выходило сообщений что данная карта не используется. просто если у сотрудника сначало была карта газпром потом втб, в истоири это записывается, и при добавлении сотрудника в ведомость с газпромом он заносится но так как карта уже не используется должно быть предупреждение.
7 Fram
 
19.11.18
09:24
(6) классический вопрос. а ты там кем?
8 cdsven
 
19.11.18
09:25
(7) начинающим программистом, вот кем
9 Fram
 
19.11.18
09:31
(8) а образование есть соответствующее? хотя бы близкое.
10 cdsven
 
19.11.18
09:36
(9) есть и даже не близкое, по  по данной специальности
11 Fram
 
19.11.18
09:38
(10) тогда почему в своем коде полную херню пишешь?
12 cdsven
 
19.11.18
09:39
(11) я по этому и обратился на форму для того что бы подсказали, зачем задавать глупые вопросы? с 1с знаком мало, поэтому выкручиваюсь как могу
13 Fram
 
19.11.18
09:45
(12) надо наверно на доп курсы сходить?
подсказывать по конкретно этому вопросу не вижу смысла. ты ж не в мелочи какой то ошибся, ты ж даже не знаешь синтаксис оператора Если.
а запрос так вообще слепым методом тыка написан
14 cdsven
 
19.11.18
09:47
доп курсы денег стоят, поэтому и учусь через форумы и интернет, если вам сложно подсказать и направить в нужное русло зачем, тогда вообще было что то писать
15 Fram
 
19.11.18
09:50
(14) ну ты как то лихо начал. попроще задание найди, сильно попроще. например, просто выведи четные числа в окно сообщений или тп
16 cdsven
 
19.11.18
09:53
таким уже занимался, сейчас есть конкретная задача, надо которой уже второй день сижу, если вам не сложно будьте добры помочь с ней.
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.