Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Проблема с условием "Если Тогда"          
Genda Подменю пользователя
сообщение 08.11.12, 16:30
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 44
Спасибо сказали: 1 раз
Рейтинг: 0

Всем доброго вечера! Стоит задача перенести стажи из зик 7.7 в збу 8.2. Стажи из 7ки выгружаю в файл дбф. Проблема заключается в выгрузке стажей за выслугу лет, т.к. они указываются при вводе документа "ввод начисления сотрудника" за надбавку за выслугу лет. Часть кода:
ВыборкаИзСпр=СоздатьОбъект("Справочник.Сотрудники"); 
ВыборкаД=СоздатьОбъект("Документ.НачисленияУдержанияСотрудника");
ВыборкаИзСпр.ВыбратьЭлементы();
    
Пока ВыборкаИзСпр.ПолучитьЭлемент()=1 Цикл
      Если(ВыборкаИзСпр.ЭтоГруппа()<>1)и(ВыборкаИзСпр.ПометкаУдаления()<>1) тогда
        ФайлВыгрузки1.Добавить();
        ФайлВыгрузки1.FIO=ВыборкаИзСпр.Наименование;
        ФайлВыгрузки1.OST=ВыборкаИзСпр.СтажОбщий;
        ФайлВыгрузки1.NS=ВыборкаИзСпр.СтажНепрерывный;
        ФайлВыгрузки1.BS=ВыборкаИзСпр.СтажСтраховой;
        ФайлВыгрузки1.Записать();
        
            ВыборкаД.ВыбратьДокументы();
        Пока ВыборкаД.ПолучитьДокумент()=1 Цикл  
            Если (СокрЛП(ВыборкаД.Сотрудник.Наименование)=СокрЛП(ВыборкаИзСпр.Наименование)) Тогда
                Если (ВыборкаД.Расчет=ВидРасчета.НадбавкаЗаВыслугуЛет) Тогда
                    ФайлВыгрузки1.DNL=ВыборкаД.ДатаДок;
                    ФайлВыгрузки1.SNL=ВыборкаД.Стаж;
                    ФайлВыгрузки1.Записать();
                КонецЕсли;
            КонецЕсли;
        КонецЦикла;
             КонецЕсли;
КонецЦикла;


В данном коде в выборке документов не отрабатывает условие для выбора вида расчета:
Если (ВыборкаД.Расчет=ВидРасчета.НадбавкаЗаВыслугуЛет) Тогда


В отладчике смотрела, даже при визуально одинаковых ВыборкаД.Расчет и ВидРасчета.НадбавкаЗаВыслугуЛет внутрь условия не заходит. Подскажите, пожалуйста в чем может быть проблема? заранее, спасибо

П.С. программист-начинающий

igmig65 Подменю пользователя
сообщение 08.11.12, 16:51
Сообщение #2

Почти ветеран
Иконка группы
Группа: Местный
Сообщений: 623
Из: Донецкая обл
Спасибо сказали: 171 раз
Рейтинг: 144.5

Я так понимаю разговор о ЗиК? хотя уже сомневаюсь..
Во первых некорректно сравнивать сотрудника по Наименованию. Нужно сравнивать текущее значение спр.сотрудники с текущим значением реквизита Сотрудник документа.
Какая ошибка? лог покажите..Если спотыкается на этой строке, проверьте тип значения реквизита ВыборкаД.Расчет, может это справочник, а не ВидРасчета?

Genda Подменю пользователя
сообщение 08.11.12, 17:01
Сообщение #3

Общительный
**
Группа: Пользователи
Сообщений: 44
Спасибо сказали: 1 раз
Рейтинг: 0

Цитата(igmig65 @ 08.11.12, 20:51) *
Я так понимаю разговор о ЗиК? хотя уже сомневаюсь..
Во первых некорректно сравнивать сотрудника по Наименованию. Нужно сравнивать текущее значение спр.сотрудники с текущим значением реквизита Сотрудник документа.
Какая ошибка? лог покажите..Если спотыкается на этой строке, проверьте тип значения реквизита ВыборкаД.Расчет, может это справочник, а не ВидРасчета?


То, что конфигурация-зик, я указала в самом начале;) Ошибки нет. Проблема в том,что данные по стажу выслуги лет не попадают в файл выгрузки дбф. Не заходит почему то внутрь условия. А почему я вообще не могу понять? собственно в этом и вопрос. У реквизита дока "Расчет" стоит тип Неопределенный, в комментарии написано - "Вид расчета или перечисление типы пособий". Но при выполнении обработки, если смотреть отладчиком, то реквизит ВыборкаД.Расчет принимает тип ВидРачета, и даже значения всех атрибутов совпадают с видом расчета НадбавкаЗаВыслугуЛет.

alex040269 Подменю пользователя
сообщение 08.11.12, 17:05
Сообщение #4

Крутой
Иконка группы
Группа: Местный
Сообщений: 1626
Из: Гуляйполе
Спасибо сказали: 236 раз
Рейтинг: 0

Цитата(Genda @ 08.11.12, 16:30) *
даже при визуально одинаковых ВыборкаД.Расчет и ВидРасчета.НадбавкаЗаВыслугуЛет внутрь

Визуально одинаковые не всегда одинаковые.
Визуально одинаковые - это одинаковое преобразование в строку. Нужно обращать внимание на тип значения - ТипЗначенияСтр
ТипЗначенияСтр - Справочник, то нужно смотреть на метод Вид().
где-то так


Signature
Никогда не бойся делать то, что не умеешь, помни - Ноев ковчег был построен любителем, профессионалы построили Титаник.
ЗиУП

Genda Подменю пользователя
сообщение 08.11.12, 17:24
Сообщение #5

Общительный
**
Группа: Пользователи
Сообщений: 44
Спасибо сказали: 1 раз
Рейтинг: 0

Цитата(alex040269 @ 08.11.12, 21:05) *
Визуально одинаковые не всегда одинаковые.
Визуально одинаковые - это одинаковое преобразование в строку. Нужно обращать внимание на тип значения - ТипЗначенияСтр
ТипЗначенияСтр - Справочник, то нужно смотреть на метод Вид().
где-то так


Проверила. Функция ТипЗначенияСтр(ВыборкаД.Расчет) возвращает значение "ВидРасчета". Вообще не понимаю, почему он не приравнивает их...

igmig65 Подменю пользователя
сообщение 08.11.12, 17:48
Сообщение #6

Почти ветеран
Иконка группы
Группа: Местный
Сообщений: 623
Из: Донецкая обл
Спасибо сказали: 171 раз
Рейтинг: 144.5

конфигурация всеравно доработана
Цитата
У реквизита дока "Расчет" стоит тип Неопределенный, в комментарии написано - "Вид расчета или перечисление типы пособий"

попробуйте сначала сравнить на тип значения, потом уже на конкретный вид расчета.
Странно, вообще пособие, любое, в зик - это уже ВидРасчета, глобальный объект, ну а тип пособия, это уже признак, свойство, зачем такие мудреные изменения было в доке делать. ВидРасчета и Перечисление в 1С совершенно разные объекты, служат совсем для разных целей.

Да и еще, сотрудник в документе реквизит шапки?

Сообщение отредактировал igmig65 - 08.11.12, 17:49

Genda Подменю пользователя
сообщение 08.11.12, 18:14
Сообщение #7

Общительный
**
Группа: Пользователи
Сообщений: 44
Спасибо сказали: 1 раз
Рейтинг: 0

Цитата(igmig65 @ 08.11.12, 21:48) *
конфигурация всеравно доработана

попробуйте сначала сравнить на тип значения, потом уже на конкретный вид расчета.
Странно, вообще пособие, любое, в зик - это уже ВидРасчета, глобальный объект, ну а тип пособия, это уже признак, свойство, зачем такие мудреные изменения было в доке делать. ВидРасчета и Перечисление в 1С совершенно разные объекты, служат совсем для разных целей.

Да и еще, сотрудник в документе реквизит шапки?


Насчет изменений в доке- не в курсе,т.к. если делались,то до меня. Сотрудник является реквизитом шапки

igmig65 Подменю пользователя
сообщение 08.11.12, 18:21
Сообщение #8

Почти ветеран
Иконка группы
Группа: Местный
Сообщений: 623
Из: Донецкая обл
Спасибо сказали: 171 раз
Рейтинг: 144.5

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

Тоесть
Если ТипЗначенияСтр(ВыборкаД.Расчет) = "ВидРасчета" Тогда
Если (ВыборкаД.Расчет=ВидРасчета.НадбавкаЗаВыслугуЛет) Тогда

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 26.06.25, 7:42
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!