Объединение Двух Неподчиненных Справочников

  • Автор темы nestovby
  • Дата начала
N

nestovby

Здравствуйте! У меня вот такая проблема: имеются два справочника (не подчиненные ни к какому другому): ДоплатыЗаУченоеЗвание и ДоплатыЗаУченуюСтепень, и есть справочник КадровыеДанные, откуда нужно брать сотрудников (в частности поля степень и звание).
Нужно вывести все звания и степени сотрудников с суммарными ставками. И по каждой степени и по каждому званию указать соответствующую ставку1гоРазряда (периодические поля из спр ДоплатыЗаУченуюСтепень и ...Звание). Но у меня не получается обьединить справочники ДоплатыЗаУченуюСтепень и ДоплатыЗаУченуюСтепень, значение выводятся отдельно, не группируются (т.е. не в одной строке выводятся). Вот скрин, чтобы наглядно видеть мою проблему:
Исход_.jpg
Как мне обьединить поля, через запрос, чтобы выводилась, например, строка: Профессор, Доктор наук, 8 (ставки), 4 и 6 (ставки 1-го разряда) в одной строке? И можно ли вообще через запрос это сделать? или нужно только ТЗ использовать?
вот мой код (может быть что-то в нем нужно изменить, чтобы выводилось нормально?):
Код:
Процедура Сформировать()
Перем Запрос, Сумма,сумма2, ТекстЗапроса, Таб;
//Создание объекта типа Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|УченоеЗвание = Справочник.КадровыеДанные.УченоеЗвание, Справочник.ДоплатыЗаУченыеЗвания.УченоеЗвание;
|УченаяСтепень = Справочник.КадровыеДанные.УченаяСтепень.УченаяСтепень, Справочник.ДоплатыЗаУченуюСтепень.УченаяСтепень;
|ЧислоСтавокДляППС = Справочник.ДоплатыЗаУченуюСтепень.ЧислоСтавокДляППС;
|ЧислоСтавокДляППС1 = Справочник.ДоплатыЗаУченыеЗвания.ЧислоСтавокДляППС;
|Владелец = Справочник.КадровыеДанные.Владелец.Ставка;
|Функция ВладелецСумма = Сумма(Владелец);
|Группировка УченоеЗвание;
|Группировка УченаяСтепень;
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Сформировать");
Таб.ВывестиСекцию("Заголовок");
Состояние("Заполнение выходной таблицы...");
Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
Пока Запрос.Группировка(1) = 1 Цикл
Пока Запрос.Группировка(2) = 1 Цикл
//Здесь потом еще просто будет умножение на число
ЧислоСтавокДляППС=запрос.ЧислоСтавокДляППС;//* 1400
ЧислоСтавокДляППС1=запрос.ЧислоСтавокДляППС1;//*1200
// 
Таб.ВывестиСекцию("УченаяСтепень");
КонецЦикла;
КонецЦикла;
Таб.ТолькоПросмотр(1);
Таб.Показать("Сформировать", "");
КонецПроцедуры
 
Д

Дайнеко

Здравствуйте! У меня вот такая проблема: имеются два справочника (не подчиненные ни к какому другому): ДоплатыЗаУченуюСтепень и ДоплатыЗаУченуюСтепень, и есть справочник КадровыеДанные,
Я бы предложил почетче описать задание:
1) повторяется название "ДоплатыЗаУченуюСтепень", только по запросу видно, есть справочник "Званий".
2) Хотя бы только в этом вопросе укоротите названия "ДоплатыСтепень", "ДоплатыЗвание". Видите, Вы запутались, а уменя уж точно рябит от названий, едва отличающихся.
3) Так сколько всего справочников 2 или 3? Считая "КадровыеДанные".

Я не знаю специфики научной сферы и ничего не понял. Попробуйте изложить 2-мя частями:
1) Что на что ссылается, какие типы данных, как соотносятся множества (один-многие...). В плоть до таблички с примером.
2) Какой результат нужен.
 
N

nestovby

Я бы предложил почетче описать задание:
1) повторяется название "ДоплатыЗаУченуюСтепень", только по запросу видно, есть справочник "Званий".
2) Хотя бы только в этом вопросе укоротите названия "ДоплатыСтепень", "ДоплатыЗвание". Видите, Вы запутались, а уменя уж точно рябит от названий, едва отличающихся.
3) Так сколько всего справочников 2 или 3? Считая "КадровыеДанные".

Я не знаю специфики научной сферы и ничего не понял. Попробуйте изложить 2-мя частями:
1) Что на что ссылается, какие типы данных, как соотносятся множества (один-многие...). В плоть до таблички с примером.
2) Какой результат нужен.
ой да, немного ошибся: всего 3 справочника: "ДоплатыСтепень", "ДоплатыЗвание" и КадровыеДанные.
1) Справочники никак не подченены друг к другу, но у справочника "ДоплатыСтепень" есть одинаковый реквизит со справочником "КадровыеДанные" - это реквизит УченаСтепень (имеющая одинаковый тип), так же и в справочнике "ДоплатыЗвание" есть общий реквизит со справочником "Кадровые данные" - УченоеЗвание.
2) Нужно вывести все поля этих 3-ех справочников в одной строке (т.е. как-то сгруппировать по полям УченаяСтепень и УченоеЗвание).
В прикрипленной картинке я показал, как выводится у меня отчет, если делать через запрос. Но нужно чтобы все данные были в одной строке!
никак не могу решить данную проблему...
 
Д

Дайнеко

Часть прояснили. Это хорошо.
2) Нужно вывести все поля этих 3-ех справочников в одной строке (т.е. как-то сгруппировать по полям УченаяСтепень и УченоеЗвание).

Что значит "одной строкой"? Как сгруппировать одновременно по двум полям? Пример напишите из таблиц
Кадры - 5 строк
Звания - 3 строки
Степень - 2 строки

Извините за настойчивость, но есть ощущение, что до конца не представляете результат. В моей практике часто люди правильно сформулировав вопрос, сами получают ответ.
 
N

nestovby

Что значит "одной строкой"? Как сгруппировать одновременно по двум полям? Пример напишите из таблиц
Кадры - 5 строк
Звания - 3 строки
Степень - 2 строки

Извините за настойчивость, но есть ощущение, что до конца не представляете результат. В моей практике часто люди правильно сформулировав вопрос, сами получают ответ.
Ну вот, посмотрите пожалуйста на картинку. Нужно чтобы выводились только подчеркнутые строки.
1сс.jpg - вот так я представляю мой результат.
а у меня числа 2,4,6 (кол-во ставок 1-го раз) выводятся отдельно, не группируются. Понимаете что мне нужно? на картинке я указал, что должно получится.
Другими словами я хочу в отчете получить такие строки:
"Профессор - Доктор Наук - 8 - 4 - 6" , а у меня выводится "Профессор - Доктор Наук - 8 -0 -0" (4 и 6 не в этой строке выводятся)
"Доцент - Кандидат Наук - 2 - 2- 4" , а у меня выводится "Доцент - Кандидат Наук - 2 - 0- 0"
и т.д. ....
 
Д

Дайнеко

Не, не понимаю. Я рад помочь, а вникать некогда. Мне цифры 8-4-6 ничего не говорят.

Вот в соседней теме нарисовали текстище.. Неужели нельзя убрать лишнее?
 
N

nestovby

Мне цифры 8-4-6 ничего не говорят.
по картинки, которую я прикрепил, все видно. - там видно сразу что мне нужно и что получается не так в данный момент (я там указал).
Мне хотя бы просто узнать, что не правильно я сделал? Ведь запрос построил правильно, да и группировки указал те, которые мне необходимы. Но почему-то не группирует в итоге :rolleyes:


Добавлено: Я заметил, что если я возьму только два справочника, например, Кадры и Звание (или Кадры и Степень), то у меня все сгруппирует как положено! А когда беру три справочника (Кадры, Степень и Звание), то не соединяет все, не группирует
 
N

nestovby

Вот написал через ТаблицуЗначений и все правильно по идее. Но даже тут не сворачивает, не группирует почему-то.
Выводит справочники по отдельности.
Может быть, если есть время, посмотрите мельком этот код. Правильно ли я тут справочники свои вывожу и группирую
Код:
Процедура Сформировать()
перем пд, ИтогоЗаСтепень, ИтогоЗаЗвание;
Таб=СоздатьОбъект("ТаблицаЗначений");
Если Подр=1 Тогда
Таб.НоваяКолонка("Подразделение","Справочник.Подразделения");
КонецЕсли;
СпрСотр=СоздатьОбъект("Справочник.Сотрудники");
ПрикДл=СоздатьОбъект("Справочник.ПриказыДлительногоДействия");
КадрДанные=СоздатьОбъект("Справочник.КадровыеДанные");
ДопУчСт= СоздатьОбъект("Справочник.ДоплатыЗаУченуюСтепень");
ДопУчЗв= СоздатьОбъект("Справочник.ДоплатыЗаУченыеЗвания");
Таб.НоваяКолонка("Степень","перечисление.УченаяСтепень");
Таб.НоваяКолонка("Ставка","Число",4,2);
Таб.НоваяКолонка("ЧислоСтавокНеППС","Число",4,2);
Таб.НоваяКолонка("ЧислоСтавокДляППС","Число",4,2);
Таб.НоваяКолонка("Звание","Перечисление.УченоеЗвание");		  
Таб.НоваяКолонка("Совместитель","Справочник.ВнутренниеСовместители");
СпрСотр.ИспользоватьДату(ДатаОт);
СпрСотр.ПорядокНаименований();
СпрСотр.ВыбратьЭлементы();
Пока СпрСотр.ПолучитьЭлемент()=1 Цикл
Если СпрСотр.ЭтоГруппа() = 1 Тогда
Продолжить;
КонецЕсли;
ПрикДл.ИспользоватьВладельца(СпрСотр.ТекущийЭлемент());
ПрикДл.ВыбратьЭлементы();
Пока ПрикДл.ПолучитьЭлемент()=1 Цикл
пр=0;
Если (ПрикДл.Приказ.Вид()="ПостоянныеНачисленияУдержания") и (ПрикДЛ.Приказ.ВидРасч=ВидРасчета.ПрочиеНачисления) Тогда
Если (ПрикДл.Приказ.Вид.Код="4") или (ПрикДл.Приказ.Вид.Код="5") Тогда
пр=1;
КонецЕсли;
Если пр=1 Тогда
Сообщить(СпрСотр.Наименование);

КадрДанные.ИспользоватьВладельца(СпрСотр.ТекущийЭлемент());
КадрДанные.ВыбратьЭлементы();
пока кадрДанные.ПолучитьЭлемент()=1 цикл
Таб.НоваяСтрока();
Таб.Степень=КадрДанные.УченаяСтепень.ученаястепень;
Таб.Звание=КадрДанные.УченоеЗвание;
Таб.Ставка=?(ПустоеЗначение(ПрикДл.Приказ.ВнСовместитель)=1,СпрСотр.Ставка,ПрикДл.Приказ.ВнСовместитель.Ставка.Получить(ДатаОт)); 
Таб.Совместитель=ПрикДл.Приказ.ВнСовместитель;
конеццикла;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЦикла;				 
// ПЕРВЫЙ СПРАВОЧНИК Я ВЫВЕЛ ПРАВИЛЬНО, ТЕПЕРЬ ВЫВОЖУ ДВА ДРУГИХ. МОЖЕТ БЫТЬ ИХ НУЖНО ГДЕ-ТО В ДРУГОМ МЕСТЕ ВЫВЕСТИ, ЧТОБЫ СОЕДИНИТЬ ОДИНАКОВЫЕ ПОЛЯ?
ДопУчЗв.выбратьэлементы();
пока ДопУчЗв.получитьЭлемент()=1 цикл
Таб.НоваяСтрока();
Таб.Звание=ДопУчЗв.УченоеЗвание;
Таб.ЧислоСтавокДляППС=ДопУчЗв.ЧислоСтавокДляППС.Получить(ДатаОт);
конеццикла;

ДопУчСт.выбратьэлементы();
пока ДопУчСт.получитьэлемент()=1 цикл
Таб.НоваяСтрока();	
Таб.Степень=ДопУчСт.УченаяСтепень;
Таб.ЧислоСтавокНеППС=ДопУчСт.ЧислоСтавокНеППС;	 
конеццикла;	
//СВОРАЧИВАЮ ПО СТЕПЕНИ И ЗВАНИЮ
Таб.Свернуть("Степень,звание,Совместитель,ЧислоСтавокНеППС,ЧислоСтавокДляППС","Ставка");
ТабД=СоздатьОбъект("Таблица");
ТабД.ВывестиСекцию("Заголовок");
ТабД.ПовторятьПриПечатиСтроки(3,3);
ТабД.ВывестиСекцию("Шапка");
Таб.Сортировать("Ставка");
Таб.ВыбратьСтроки();
Пока Таб.ПолучитьСтроку()=1 Цикл
ТабД.ВывестиСекцию("Строка");
КонецЦикла;
КС=ТабД.КоличествоСтраниц();
ТабД.ВывестиСекцию("Итого");
ТабД.Показать("Доплаты за степень и звание");
КонецПроцедуры
ДатаОт=ТекущаяДата();
СтрОрг=Перечисление.СтруктураОрганизации.ОсновнойСостав;
Подр=1;
Заранее благодарю
 
D

Darlock

У меня предложение. Как я требую от своих заказчиков. Сформулируйте вопрос четко и внятно. Представьте, что "не далекий" и не понимаю 80% того, что вы мне говорите и приложите крин (сделайте его руками) внешнего вида отчета с 2-3 строками заполненными, чтоб было понятно, что вы хотите на выходе получить. Потому,что не совсем ясно, из поста выше, что-откуд-куда-как. Возможно и вы сами для себя что-то выясните, и нам понятнее будет в какую сторону вас повернуть.
 
Д

Дайнеко

Представьте, что "не далекий" и не понимаю 80% того, что вы мне говорите
Рад, что я не один "не понимающий". При объяснениях с клиентом я каждый раз спускаюсь на ступеньку по принципу "еще тупее".

Повторю просьбы насчет выкладываемых текстов:
- уберите все лишнее. В Вашем случае все команды печати, все оговорки вроде "Если (ПрикДл.Приказ.Вид.Код="4") или"
уберите все коэффициенты, они вторичны от справочника.
- отформатируйте правильно текст. Я твердо уверен, насколько человек аккуратно пишет, также он и думает.
"пока" и "конеццикла;" - это что? такой авторский стиль? У меня шаблоны пишут все с большой буквы.
 
N

nestovby

Хорошо, извините, вот вариант без лишнего.
Код:
Процедура Сформировать()
перем пд, ИтогоЗаСтепень, ИтогоЗаЗвание;
Таб=СоздатьОбъект("ТаблицаЗначений");
СпрСотр=СоздатьОбъект("Справочник.Сотрудники");
ПрикДл=СоздатьОбъект("Справочник.ПриказыДлительногоДействия");
КадрДанные=СоздатьОбъект("Справочник.КадровыеДанные");
ДопУчСт= СоздатьОбъект("Справочник.ДоплатыЗаУченуюСтепень");
ДопУчЗв= СоздатьОбъект("Справочник.ДоплатыЗаУченыеЗвания");
Таб.НоваяКолонка("Степень","перечисление.УченаяСтепень");
Таб.НоваяКолонка("Ставка","Число",4,2);
Таб.НоваяКолонка("ЧислоСтавокНеППС","Число",4,2);
Таб.НоваяКолонка("ЧислоСтавокДляППС","Число",4,2);
Таб.НоваяКолонка("Звание","Перечисление.УченоеЗвание");		  
СпрСотр.ИспользоватьДату(ДатаОт);
СпрСотр.ВыбратьЭлементы();
Пока СпрСотр.ПолучитьЭлемент()=1 Цикл
КадрДанные.ИспользоватьВладельца(СпрСотр.ТекущийЭлемент());
КадрДанные.ВыбратьЭлементы();
Пока КадрДанные.ПолучитьЭлемент()=1 цикл
Таб.НоваяСтрока();
Таб.Степень=КадрДанные.УченаяСтепень.ученаястепень;
Таб.Звание=КадрДанные.УченоеЗвание;
Таб.Ставка=?(ПустоеЗначение(ПрикДл.Приказ.ВнСовместитель)=1,СпрСотр.Ставка,ПрикДл.Приказ.ВнСовместитель.Ставка.Получить(ДатаОт)); 
КонецЦикла;
КонецЦикла;				 
// ПЕРВЫЙ СПРАВОЧНИК Я ВЫВЕЛ ПРАВИЛЬНО, ТЕПЕРЬ ВЫВОЖУ ДВА ДРУГИХ. МОЖЕТ БЫТЬ ИХ НУЖНО ГДЕ-ТО В ДРУГОМ МЕСТЕ ВЫВЕСТИ, ЧТОБЫ СОЕДИНИТЬ ОДИНАКОВЫЕ ПОЛЯ?
ДопУчЗв.выбратьэлементы();
пока ДопУчЗв.получитьЭлемент()=1 цикл
Таб.НоваяСтрока();
Таб.Звание=ДопУчЗв.УченоеЗвание;
Таб.ЧислоСтавокДляППС=ДопУчЗв.ЧислоСтавокДляППС.Получить(ДатаОт);
конеццикла;

ДопУчСт.выбратьэлементы();
пока ДопУчСт.получитьэлемент()=1 цикл
Таб.НоваяСтрока();	
Таб.Степень=ДопУчСт.УченаяСтепень;
Таб.ЧислоСтавокНеППС=ДопУчСт.ЧислоСтавокНеППС;	 
конеццикла;	
//СВОРАЧИВАЮ ПО СТЕПЕНИ И ЗВАНИЮ
Таб.Свернуть("Степень,звание,ЧислоСтавокНеППС,ЧислоСтавокДляППС","Ставка");
ТабД=СоздатьОбъект("Таблица");
ТабД.ВывестиСекцию("Заголовок");
ТабД.ВывестиСекцию("Шапка");
Таб.Сортировать("Ставка");
Таб.ВыбратьСтроки();
Пока Таб.ПолучитьСтроку()=1 Цикл
ТабД.ВывестиСекцию("Строка");
КонецЦикла;
ТабД.ВывестиСекцию("Итого");
ТабД.Показать("Доплаты");
КонецПроцедуры
и все-равно не группирует по Степеням и Званиям.
По идее ж все правильно написано?
 
P

Paume

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

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

По запросу и перебору справочников:
Пройдите оба кода на бумаге по шагам и найдете ошибку.
 
N

nestovby

Сделайте группировку по КадровымДанным - этот справочник содержит информацию одновременно и по одной, и по другой вашей группировке, он объединяет их.
в запросе. Я не понимаю как сделал группировку по КадровымДанным. По какому полю? Ведь я сделал группировки по Степени и Званию (а они и относятся к КадровымДанным тоже).
По перебору справочников:
Таб.НоваяСтрока() создает новую строку с пустыми значениями колонок. При переборе одного справочника вы заполняете одни колонки, во втором другие, в третьем - третьи, сворачиваете по всем, а общих - только Степень и Звание.
Так как мне можно решить эту проблему? Подскажите пожалуйста. Я же не могу никак заполнить одни колонки сразу с трех справочников?
 
P

Paume

Пока СпрСотр.ПолучитьЭлемент()=1 Цикл
КадрДанные.ИспользоватьВладельца(СпрСотр.ТекущийЭлемент());
КадрДанные.ВыбратьЭлементы();
Пока КадрДанные.ПолучитьЭлемент()=1 цикл
Таб.НоваяСтрока();
Таб.Степень=КадрДанные.УченаяСтепень.ученаястепень;
Таб.Звание=КадрДанные.УченоеЗвание;
Таб.Ставка=?(ПустоеЗначение(ПрикДл.Приказ.ВнСовместитель)=1,СпрСотр.Ставка,ПрикДл.Приказ.ВнС
овместитель.Ставка.Получить(ДатаОт));

ДопУчСт.НайтиЗначение(КадрДанные.УченаяСтепень);
Таб.ЧислоСтавокНеППС=ДопУчСт.ЧислоСтавокНеППС;

ДопУчЗв.НайтиЗначение(КадрДанные.УченоеЗвание);
Таб.ЧислоСтавокДляППС=ДопУчЗв.ЧислоСтавокДляППС.Получить(ДатаОт);

КонецЦикла;
КонецЦикла;

И сворачивайте...

По поводу запроса - читайте теорию. Анализируйте переменные, в конце концов - отладчик для кого придумали?
 
P

Paume

ДопУчСт.НайтиЗначение(КадрДанные.УченаяСтепень);
ДопУчЗв.НайтиЗначение(КадрДанные.УченоеЗвание);

Не НайтиЗначение(), а НайтиЭлемент()
 
N

nestovby

Я пишу
Код:
....
КадрДанные.ИспользоватьВладельца(СпрСотр.ТекущийЭлемент());
КадрДанные.ВыбратьЭлементы();
Пока кадрДанные.ПолучитьЭлемент()=1 цикл 
Таб.НоваяСтрока();
Таб.Степень=КадрДанные.УченаяСтепень.ученаястепень;
Таб.Звание=КадрДанные.УченоеЗвание;
Таб.Ставка=?(ПустоеЗначение(ПрикДл.Приказ.ВнСовместитель)=1,СпрСотр.Ставка,ПрикДл.Приказ.ВнСовместитель.Ставка.Получить(ДатаОт));				
Таб.Совместитель=ПрикДл.Приказ.ВнСовместитель;
ДопУчЗв.НайтиЭлемент(КадрДанные.УченоеЗвание);
Таб.ЧислоСтавокДляППС=ДопУчЗв.ЧислоСтавокДляППС.Получить(ДатаОт);

ДопУчСт.НайтиЭлемент(КадрДанные.УченаяСтепень);
Таб.ЧислоСтавокНеППС=ДопУчСт.ЧислоСтавокНеППС; 
КонецЦикла;
...
Таб.Свернуть("Звание,Степень,ЧислоСтавокНеППС,ЧислоСтавокДляППС","Ставка");
Но Таб.ЧислоСтавокДляППС и Таб.ЧислоСтавокНеППС не выводятся. Точнее одни нули.
Может быть в методе "НайтиЭлемент" не хватает какого-либо цикла, выборки? ... :(
 
P

Paume

Прошу - пройди свой код с отладчиком. Посмотри, в какой момент появляется тот ноль, посмотри, записывается в ли в Таб какое-либо число, когда ты читаешь его из справочника, посмотри, может, у тебя дата левая.
Напиши хотя бы Сообщить(ДопУчЗв.ЧислоСтавокДляППС.Получить(ДатаОт)) в тот момент, когда читаешь.
И хелповку почитай по НайтиЭлемент().

Подкуйся хоть какими-либо знаниями, в помощи тебе никто не отказывает.

Таблица в нужной форме выводится?
 
V

vbs

По-моему, при создании этих колонок надо уведичить размерность. А то "Число",4,2 как-то маловато
 
N

nestovby

Прошу - пройди свой код с отладчиком. Посмотри, в какой момент появляется тот ноль, посмотри, записывается в ли в Таб какое-либо число, когда ты читаешь его из справочника, посмотри, может, у тебя дата левая.
Напиши хотя бы Сообщить(ДопУчЗв.ЧислоСтавокДляППС.Получить(ДатаОт)) в тот момент, когда читаешь.
И хелповку почитай по НайтиЭлемент().

Подкуйся хоть какими-либо знаниями, в помощи тебе никто не отказывает.

Таблица в нужной форме выводится?
проверил отладчиком: - Не находит элемент, поэтому и выводит нули
писал и так:
Код:
																					  											 Если ДопУчЗв.НайтиЭлемент(КадрДанные.УченоеЗвание)=1 Тогда
Таб.ЧислоСтавокДляППС=ДопУчЗв.ЧислоСтавокДляППС.Получить(ДатаОт);
Иначе
Сообщить("Не нашли "+КадрДанные.УченоеЗвание);
КонецЕсли;


Если ДопУчСт.НайтиЭлемент(КадрДанные.УченаяСтепень)=1 Тогда 
Таб.ЧислоСтавокНеППС=ДопУчСт.ЧислоСтавокНеППС; 
Иначе
Сообщить("Не нашли "+КадрДанные.УченаяСтепень);
КонецЕсли;
- все-равно не находит элементы, и поэтому выводит нули
С датой и таблицами все в порядке
 
P

Paume

ДопУчЗв.НайтиЭлемент(КадрДанные.УченоеЗвание)

Посмотри в отладчике, чтобы КадрДанные.УченоеЗвание были действительно того типа, что и справочник ДопУчЗв.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!