|
v7: У меня лог ошибка в коде не выводится должность | ☑ | ||
---|---|---|---|---|
0
ЮлияКорж
07.11.11
✎
11:33
|
Процедура Сформировать()
м=0; таб=СоздатьОбъект("Таблица"); таб.ИсходнаяТаблица("Результаты"); таб.ВывестиСекцию("Шапка"); Сотр=СоздатьОбъект("Справочник.Сотрудники"); CпрНазнач=СоздатьОбъект("Справочник.Назначения"); Сотр.ВыбратьЭлементы(); Пока Сотр.ПолучитьЭлемент()>0 Цикл м=м+1; таб.ВывестиСекцию("Результат"); КонецЦикла; CпрНазнач.ИспользоватьВладельца(Сотр); CпрНазнач.ВыбратьЭлементы(); Пока CпрНазнач.ПолучитьЭлемент()>0 Цикл ЕСЛИ ПустоеЗначение(CпрНазнач.ДатаОкончанияДействия)=1 Тогда таб.ПрисоединитьСекцию("Должность"); // таб.ПрисоединитьСекцию("Результат|Должность"); таб.ВывестиСекцию("Результат|Должность"); КонецЕсли; КонецЦикла; таб.Показать("Результаты"); таб.ТолькоПросмотр(1); КонецПроцедуры |
|||
1
Mikeware
07.11.11
✎
11:34
|
ошибка не в коде....
|
|||
2
ДенисЧ
07.11.11
✎
11:35
|
я шизею с этого кода...
|
|||
3
ЧеловекДуши
07.11.11
✎
11:35
|
Я шизею с заголовка без запятых :)
|
|||
4
filh
07.11.11
✎
11:36
|
Забавно! ТС 1С это не ваше, бросьте и займитесь другим заработком, более прибыльным.
|
|||
5
ЧеловекДуши
07.11.11
✎
11:36
|
+ Код даже не хочется рассматривать :)
(0)Может просто выложишь саму обработку на файло помойку и может найдется рыцарь :) |
|||
6
Азат
07.11.11
✎
11:37
|
(0) давай - ты мне 1000 р на мобилку, а я исправлю твой спагетти-код?
|
|||
7
ЮлияКорж
07.11.11
✎
11:37
|
Открываю выборку по справочнику назначение и хочу вывести поле должность делаю проверку на актуальность должности, должность не периодический реквизит все значения по полям сотрудника необходимые выводятся, кроме должности
|
|||
8
filh
07.11.11
✎
11:39
|
(7) сколько?
|
|||
9
ЧеловекДуши
07.11.11
✎
11:40
|
(7)По коду ты скачала делаешь "таб.ВывестиСекцию("Результат"); "
т.е. выводишь всю таблицу построчно. Затем ты К последней выведенной строке в цикле № 1 присваиваешь должность "таб.ПрисоединитьСекцию("Должность");" (бред сивой кобылы) Затем еще каждый раз делаешь еще "таб.ВывестиСекцию("Результат|Должность");" (блеск футуристической эргономики) |
|||
10
ЧеловекДуши
07.11.11
✎
11:41
|
+(7)Код в помойку.
|
|||
11
Шапокляк
07.11.11
✎
11:41
|
Жуть! Сначала перебрала всех сотрудников в цикле, потом перебираете все Назначения последнего сотрудника? Что в секции Должность должно выводиться должны телепаты догадываться?
|
|||
12
ЧеловекДуши
07.11.11
✎
11:42
|
(11)Ладно телепаты, мне страшно представить получаемую печатную форму :)
|
|||
13
ЧеловекДуши
07.11.11
✎
11:42
|
+(11)Следуя условию в (7), код явно не тот.
|
|||
14
Шапокляк
07.11.11
✎
11:44
|
(13) На какой тарабарщине человек пишет, на такой и думает, так что все логично "в огороде бузина а в киеве дядька как холодно на улице".
|
|||
15
picom
07.11.11
✎
11:46
|
(0) первый конеццикла поместить после последнего
хотя не уверен что именно это требуется |
|||
16
СБ с Одинесии
07.11.11
✎
11:46
|
(0) Позорный код. Ты сначала перебираешь справочник сотрудников, формируешь некий отчёт, а после используешь подчинённый ему справочник назначений, не понимая, что нет позиционирования на справочнике-владельце. Или, простыми словами, второй цикл не работает, т.к. условие ложное.
|
|||
17
zuza
07.11.11
✎
12:39
|
(16) И почему это второй цикл не работает? Работает по последнему элементу спр-ка Сотрудники(владельцу).
|
|||
18
1Сергей
07.11.11
✎
12:47
|
ещё тут что-то намудрила:
таб.ВывестиСекцию("Результат"); ... таб.ПрисоединитьСекцию("Должность"); таб.ВывестиСекцию("Результат|Должность"); надо делать сперва ВывестиСекцию, где у казать и горизонтальную и вертикальную секции, а потом ПрисоединитьСекцию, где тоже указать и горизонтальную и вертикальную секции |
|||
19
Начинающий Программер
07.11.11
✎
12:56
|
Как-то так ближе к истине:
Процедура Сформировать() таб = СоздатьОбъект("Таблица"); таб.ИсходнаяТаблица("Результаты"); таб.ВывестиСекцию("Шапка"); Сотр=СоздатьОбъект("Справочник.Сотрудники"); CпрНазнач=СоздатьОбъект("Справочник.Назначения"); Сотр.ВыбратьЭлементы(); Пока Сотр.ПолучитьЭлемент()>0 Цикл таб.ВывестиСекцию("Результат"); CпрНазнач.ИспользоватьВладельца(Сотр.ТекущийЭлемент()); CпрНазнач.ВыбратьЭлементы(); Пока CпрНазнач.ПолучитьЭлемент()>0 Цикл ЕСЛИ ПустоеЗначение(CпрНазнач.ДатаОкончанияДействия)=0 Тогда таб.ПрисоединитьСекцию("Должность"); КонецЕсли; КонецЦикла; КонецЦикла; таб.Показать("Результаты"); таб.ТолькоПросмотр(1); КонецПроцедуры |
|||
20
BlackSeaCat
07.11.11
✎
14:20
|
Гм! Лично я бы поостерегся давать ТС "исправленный" код не видя, чего она наваяла в таблице "Результаты".
|
|||
21
Начинающий Программер
07.11.11
✎
21:11
|
(20) Да там 2 колонки походу - сотрудник и должность.
|
|||
22
Начинающий Программер
07.11.11
✎
21:12
|
Ты смотри, они уже 5 месяцев темы создает, значит, держится на этой должности:-)))
|
|||
23
Начинающий Программер
07.11.11
✎
21:12
|
(22) они -> она
|
|||
24
medved_kot
07.11.11
✎
22:06
|
Как я понимаю выводятся секции таблицы в которых стоят формулы со ссылками на поля справочника. Если не выводится "должность", то видимо просто ни в одной из выводимых секций нет ссылки на такое поле (т.е. смотри таблицу). Но в первую очередь смотри код, т.к. об этом уже написали выше.
|
|||
25
filh
08.11.11
✎
00:10
|
А кто здесь? ТС уже бабло заплатила за решение задачи и попилила бюджет...
|
|||
26
СБ с Одинесии
08.11.11
✎
10:27
|
(17) Наивный. Цикл заканчивается когда Сотр.ПолучитьЭлемент()=0.
|
|||
27
ЮлияКорж
10.11.11
✎
11:52
|
Процедура Сформировать()
Перем М1; м=0; таб=СоздатьОбъект("Таблица"); таб.ИсходнаяТаблица("Результаты"); таб.ВывестиСекцию("Шапка"); Сотр=СоздатьОбъект("Справочник.Сотрудники"); CпрНазнач=СоздатьОбъект("Справочник.Назначения"); ФизЛицо=СоздатьОбъект("Справочник.ФизическиеЛица"); ФЛАГ=0; Сотр.ВыбратьЭлементы(); Пока Сотр.ПолучитьЭлемент()>0 Цикл м=м+1; Если ПустоеЗначение(Сотр.ДатаОкончанияДействия)=1 Тогда CпрНазнач.ИспользоватьВладельца(Сотр); CпрНазнач.ВыбратьЭлементы(); Пока CпрНазнач.ПолучитьЭлемент()>0 Цикл ЕСЛИ ПустоеЗначение(CпрНазнач.ДатаОкончанияДействия)=1 Тогда Если ПустоеЗначение(CпрНазнач.Должность)=1 Тогда М1=CпрНазнач.Профессия; Иначе М1=CпрНазнач.Должность; КонецЕсли; КонецЕсли; КонецЦикла; таб.ВывестиСекцию("Результат"); КонецЕсли; КонецЦикла; таб.Показать("Результаты"); таб.ТолькоПросмотр(1); КонецПроцедуры Я написала отчет спасибо за помощь это работающий пример кода |
|||
28
BlackSeaCat
10.11.11
✎
12:22
|
Ура! Задача решена всего за три дня.
|
|||
29
ЮлияКорж
10.11.11
✎
17:17
|
Она была решена ранее в тот же день просто некогда было написать занята была
|
|||
30
Начинающий Программер
10.11.11
✎
17:52
|
(27) Только зачем тебе вот это:
Перем М1; м=0; м=м+1; ? |
|||
31
2S
10.11.11
✎
17:54
|
налетели вороны...
|
|||
32
ЮлияКорж
10.11.11
✎
18:01
|
Это для того,чтобы вывести порядковый номер
|
|||
33
ЮлияКорж
10.11.11
✎
18:03
|
Еще вопросы будут
? |
|||
34
BuHu
10.11.11
✎
18:05
|
(33)Есть ответы?
|
|||
35
ЮлияКорж
10.11.11
✎
18:07
|
Конечно
|
|||
36
BuHu
10.11.11
✎
18:08
|
(35) отсыпь )
|
|||
37
ЮлияКорж
10.11.11
✎
18:09
|
подставляй!!!
|
|||
38
ЮлияКорж
10.11.11
✎
18:09
|
ОТСЫПЛЮ
|
|||
39
BuHu
10.11.11
✎
18:13
|
(38) тссс , не кричи . подставил
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |