|
v7: Выводит поле несмотря на отсутствие значения или наоборот | ☑ | ||
---|---|---|---|---|
0
progaoff
04.07.17
✎
15:10
|
Если Спр.Цена.Получить(ТекущаяДата()) = 0 Тогда
ПечНаименование = " Цена"; ПечЗамечание = "Не указана цена." Если Заголовок = 0 Тогда Заголовок = 1; ДоговорСО = СпрДоговоры.ТекущийЭлемент(); Таб.ВывестиСекцию("Группировка"); КонецЕсли; Таб.ВывестиСекцию("Строка"); КонецЕсли; Выводит "Не указана цена" не смотря на метод получить, возвращает 0 выводит, возвращает 1 тоже выводит, куда копать? |
|||
1
linoblack
04.07.17
✎
15:12
|
с прошлого раза остается. "иначе" то нет
|
|||
2
Масянька
04.07.17
✎
15:12
|
(0) Копать от "Заголовок" до "ПечНаименование" вглубь на "ПечЗамечание".
|
|||
3
aka AMIGO
04.07.17
✎
15:15
|
Может, я не прав, но Спр.Цены для каждой цены есть вид этой цены: Закупочная, розничная и пр.
Что-то в коде я не вижу, цена какого вида выбирается. И еще - конфигурацию укажи |
|||
4
aka AMIGO
04.07.17
✎
15:16
|
Отладка поможет и спасет
|
|||
5
progaoff
04.07.17
✎
15:17
|
(3) Бухгалтерский учет 4.5
Но этот журнал - написан кем то. |
|||
6
aka AMIGO
04.07.17
✎
15:19
|
(5) Понятно.
Запусти отладчик, поставь точку останова на первую строку твоего кода, щелкай, и выводи переменные в табло |
|||
7
progaoff
04.07.17
✎
15:19
|
Если Спр.Цена.Получить(ТекущаяДата()) = 0 Тогда
ПечНаименование = " Цена"; ПечЗамечание = "Не указана цена."; Если Заголовок = 0 Тогда Заголовок = 1; ДоговорСО = СпрДоговоры.ТекущийЭлемент(); Таб.ВывестиСекцию("Группировка"); КонецЕсли; Таб.ВывестиСекцию("Строка"); КонецЕсли; ИначеЕсли (Строка(Спр.Механик.Получить(ТекущаяДата())) = "") И (Спр.ПометкаУдаления() = 0) И (Спр.НаОбслуживании.Получить(ТекущаяДата()) = 1) Тогда ПечНаименование = " Цена"; ПечЗамечание = "Не указана цена."; Если Заголовок = 0 Тогда Заголовок = 1; ДоговорСО = СпрДоговоры.ТекущийЭлемент(); Таб.ВывестиСекцию("Группировка"); КонецЕсли; Таб.ВывестиСекцию("Строка"); КонецЕсли; |
|||
8
progaoff
04.07.17
✎
15:20
|
Вот еще кусок от того же участка похоже
|
|||
9
aka AMIGO
04.07.17
✎
15:22
|
+6 Насчет ВидЦены - я перестарался, нет его в твоей конфе, кмк.
|
|||
10
progaoff
04.07.17
✎
15:23
|
(6) есть значение, выводить не должно
|
|||
11
Масянька
04.07.17
✎
15:24
|
Да, елки-метелки...
Что есть "Заголовок"?! |
|||
12
progaoff
04.07.17
✎
15:25
|
(11) 1
|
|||
13
HawkEye
04.07.17
✎
15:25
|
(0) перед первым Если поставь
ПечНаименование = ""; ПечЗамечание = ""; |
|||
14
aka AMIGO
04.07.17
✎
15:25
|
(11) чтобы не выводилась секция "Группировка"
|
|||
15
progaoff
04.07.17
✎
15:28
|
(13) неа
|
|||
16
HawkEye
04.07.17
✎
15:34
|
(15) что неа?
тебя переменные не учили очищать что-ли? корявый код - коряво работает, вопрос то в чем? |
|||
17
progaoff
04.07.17
✎
15:35
|
(16) учили
|
|||
18
aka AMIGO
04.07.17
✎
15:36
|
(17) Таки поставь, как предложено (13)
|
|||
19
progaoff
04.07.17
✎
15:38
|
(18) Сделал
|
|||
20
progaoff
04.07.17
✎
15:38
|
(19) Результат тот же
|
|||
21
HawkEye
04.07.17
✎
15:38
|
(17) смотрим (7)...
если - тогда если - тогда конецесли конецесли иначеесли - ???? откуда тут иначе? |
|||
22
aka AMIGO
04.07.17
✎
15:41
|
(21) Значит, выше по коду есть "Если", просто не всё ТС скопировал
(20) в отладчике в табло посмотри, что выдает Спр.Цена.Получить(ТекущаяДата()) |
|||
23
progaoff
04.07.17
✎
15:42
|
(22) 1
|
|||
24
HawkEye
04.07.17
✎
15:42
|
(22) т.е. предлагаешь угадать код, а потом найти в нем ошибку?
|
|||
25
aka AMIGO
04.07.17
✎
15:42
|
(21) А вообще код написан крайне неряшливо.. Да ладно-б работал, еще и не работает :)
|
|||
26
AliAksA
04.07.17
✎
15:42
|
ммм ... а где же в коде: "Заголовок = 0;" очень бы хотелось знать ...
|
|||
27
progaoff
04.07.17
✎
15:43
|
Пока Спр.ПолучитьЭлемент() = 1 Цикл
Попытка Заголовок = 0; Если (Спр.Сотрудник.Получить(ТекущаяДата()).ОтветственныйМенеджер.Наименование = РежимПечати) И (Спр.ПометкаУдаления() = 0) И (Спр.НаОбслуживании.Получить(ТекущаяДата()) = 1) Тогда ПечОбъект = "Договор ТО №" + СокрЛП(СпрДоговоры.НомерДоговора) + " (" + СпрДоговоры.Контрагент.Наименование + "), модель " + Спр.Модель.Наименование + " (№" + СокрЛП(Спр.СерийныйНомер.ЗаводскойНомер) + ")"; Если (Спр.Телефон1 = "8( ) - - ") И (Спр.Телефон2 = "8( ) - - ") И (Спр.Телефон3 = "8( ) - - ") И (Спр.Телефон4 = "8( ) - - ") Тогда ПечНаименование = " Телефоны"; ПечЗамечание = "Не указан телефон."; Если Заголовок = 0 Тогда Заголовок = 1; ДоговорСО = СпрДоговоры.ТекущийЭлемент(); Таб.ВывестиСекцию("Группировка"); КонецЕсли; Таб.ВывестиСекцию("Строка"); КонецЕсли; Если (Спр.ДатаЗаменыЭКЛЗ.Получить(ТекущаяДата()) < ТекущаяДата()) ИЛИ (ПустоеЗначение(Спр.ДатаЗаменыЭКЛЗ.Получить(ТекущаяДата())) = 1) Тогда ПечНаименование = " ЭКЛЗ"; Если ПустоеЗначение(Спр.ДатаЗаменыЭКЛЗ.Получить(ТекущаяДата())) = 1 Тогда ПечЗамечание = "Дата блокировки ЭКЛЗ не указана."; ИначеЕсли Спр.ДатаЗаменыЭКЛЗ.Получить(ТекущаяДата()) < ТекущаяДата() Тогда ПечЗамечание = "Просрочена дата замены ЭКЛЗ."; КонецЕсли; Если Заголовок = 0 Тогда Заголовок = 1; ДоговорСО = СпрДоговоры.ТекущийЭлемент(); Таб.ВывестиСекцию("Группировка"); КонецЕсли; Таб.ВывестиСекцию("Строка"); КонецЕсли; Если ПустоеЗначение(Спр.МестоУстановки.АдресФакт) = 1 Тогда ПечНаименование = " Адрес эксплуатации"; ПечЗамечание = "Не указан адрес места эксплуатации."; Если Заголовок = 0 Тогда Заголовок = 1; ДоговорСО = СпрДоговоры.ТекущийЭлемент(); Таб.ВывестиСекцию("Группировка"); КонецЕсли; Таб.ВывестиСекцию("Строка"); КонецЕсли; Если ПустоеЗначение(Спр.МестоУстановки.Метро) = 1 Тогда ПечНаименование = " Метро"; ПечЗамечание = "Не указана станция метро места эксплуатации."; Если Заголовок = 0 Тогда Заголовок = 1; ДоговорСО = СпрДоговоры.ТекущийЭлемент(); Таб.ВывестиСекцию("Группировка"); КонецЕсли; Таб.ВывестиСекцию("Строка"); КонецЕсли; Если ПустоеЗначение(Спр.ИФНС) = 1 Тогда ПечНаименование = " ИФНС"; ПечЗамечание = "Не указан ИФНС."; Если Заголовок = 0 Тогда Заголовок = 1; ДоговорСО = СпрДоговоры.ТекущийЭлемент(); Таб.ВывестиСекцию("Группировка"); КонецЕсли; Таб.ВывестиСекцию("Строка"); ИначеЕсли ПустоеЗначение(Спр.ИФНС.Адрес) = 1 Тогда ПечНаименование = " ИФНС"; ПечЗамечание = "Не указан адрес ИФНС."; Если Заголовок = 0 Тогда Заголовок = 1; ДоговорСО = СпрДоговоры.ТекущийЭлемент(); Таб.ВывестиСекцию("Группировка"); КонецЕсли; Таб.ВывестиСекцию("Строка"); КонецЕсли; Если Спр.Цена.Получить(ТекущаяДата()) = 0 Тогда ПечНаименование = " Цена"; ПечЗамечание = "Не указана цена."; Если Заголовок = 0 Тогда Заголовок = 1; ДоговорСО = СпрДоговоры.ТекущийЭлемент(); Таб.ВывестиСекцию("Группировка"); КонецЕсли; Таб.ВывестиСекцию("Строка"); КонецЕсли; ИначеЕсли (Строка(Спр.Механик.Получить(ТекущаяДата())) = "") И (Спр.ПометкаУдаления() = 0) И (Спр.НаОбслуживании.Получить(ТекущаяДата()) = 1) Тогда ПечНаименование = " Цена"; ПечЗамечание = "Не указана цена."; Если Заголовок = 0 Тогда Заголовок = 1; ДоговорСО = СпрДоговоры.ТекущийЭлемент(); Таб.ВывестиСекцию("Группировка"); КонецЕсли; Таб.ВывестиСекцию("Строка"); КонецЕсли; Исключение КонецПопытки; КонецЦикла; КонецЕсли; КонецЦикла; |
|||
28
progaoff
04.07.17
✎
15:43
|
(24) Пардонте
|
|||
29
aka AMIGO
04.07.17
✎
15:44
|
(23) т.е. Цена=1рубль?
|
|||
30
progaoff
04.07.17
✎
15:47
|
(29) Метод получить возвращает 1
|
|||
31
progaoff
04.07.17
✎
15:47
|
Значит что выводить не надо.
|
|||
32
progaoff
04.07.17
✎
15:48
|
Если же вернул 0 Выводит цена не установлена
|
|||
33
progaoff
04.07.17
✎
15:49
|
Ну по крайне мере тут так написано)
|
|||
34
HawkEye
04.07.17
✎
15:53
|
(27) продолжаем нашу интересную переписку....
пока - один раз конеццикла - два раза... зы. попытка - исключение - это сильно.... |
|||
35
progaoff
04.07.17
✎
15:56
|
(34) с пустым Попытка это еще не понятно на фиг оно надо)
|
|||
36
progaoff
04.07.17
✎
15:57
|
Цикла два
|
|||
37
AliAksA
04.07.17
✎
15:59
|
(0) у тебя прога попадает в эту ветку:
ИначеЕсли (Строка(Спр.Механик.Получить(ТекущаяДата())) = "") И (Спр.ПометкаУдаления() = 0) И (Спр.НаОбслуживании.Получить(ТекущаяДата()) = 1) Тогда ПечНаименование = " Цена"; ПечЗамечание = "Не указана цена."; Если Заголовок = 0 Тогда Заголовок = 1; ДоговорСО = СпрДоговоры.ТекущийЭлемент(); Таб.ВывестиСекцию("Группировка"); КонецЕсли; Таб.ВывестиСекцию("Строка"); КонецЕсли; а здесь "Не указана цена" всегда выводится, т.е. условие: Если (Спр.Сотрудник.Получить(ТекущаяДата()).ОтветственныйМенеджер.Наименование = РежимПечати) И (Спр.ПометкаУдаления() = 0) И (Спр.НаОбслуживании.Получить(ТекущаяДата()) = 1) Тогда не выполняется ... |
|||
38
HawkEye
04.07.17
✎
16:01
|
(36) я про программные сейчас....
|
|||
39
aka AMIGO
04.07.17
✎
16:02
|
(27) Это не весь код, опять сверху нехватает: Цикл и Если..
(30) Да? Читаю СП: Получить(<?>) GetValue(<?>) Синтаксис: Получить(<Дата>) Назначение: Возвращает значение периодической константы на заданную дату. |
|||
40
aka AMIGO
04.07.17
✎
16:03
|
+39 Так что предполагаю, что ты не смотрел в отладчик.
|
|||
41
progaoff
04.07.17
✎
16:04
|
(39) Читал про 1 и 0 в СП было
|
|||
42
HawkEye
04.07.17
✎
16:04
|
(39) цена = 1 )
|
|||
43
HawkEye
04.07.17
✎
16:05
|
(41) не трынди... никогда не было у Получить() для периодических 1 и 0...
|
|||
44
aka AMIGO
04.07.17
✎
16:06
|
(41)
![]() |
|||
45
progaoff
04.07.17
✎
16:07
|
(44) Увидел, чет не туда я полез
|
|||
46
AliAksA
04.07.17
✎
16:09
|
РЕБЯТА, ВЫ О ЧЕМ ?!
у него всего скорее условие: "Спр.Сотрудник.Получить(ТекущаяДата()).ОтветственныйМенеджер.Наименование = РежимПечати" никогда не выполняется |
|||
47
progaoff
04.07.17
✎
16:13
|
(40) Смотрю, значение в цене есть, а выводит все равно
|
|||
48
HawkEye
04.07.17
✎
16:14
|
(46) с чего ты взял?
|
|||
49
progaoff
04.07.17
✎
16:14
|
(48) Отладчик
|
|||
50
aka AMIGO
04.07.17
✎
16:16
|
(48) Вроде прав AliAksA .. Менеджер.Наименование = РежимПечати - вообще непонятная конструкция.. Да еще и через 4 точки
|
|||
51
AliAksA
04.07.17
✎
16:17
|
(47,48)
(0) НЕ ТОРМОЗИ !!! перед "Попытка" вставь: Сообщить("" + Спр.Сотрудник.Получить(ТекущаяДата()).ОтветственныйМенеджер.Наименование + " = " + РежимПечати); и результат из окна сообщений в студию !!! |
|||
52
HawkEye
04.07.17
✎
16:18
|
(49) (48) было не тебе....
(47) Спр.Цена.Получить(ТекущаяДата()) у тебя возвращает что-то не равное 0? |
|||
53
aka AMIGO
04.07.17
✎
16:19
|
Топтание на одном месте.. Ладно, не буду я мешать..
|
|||
54
progaoff
04.07.17
✎
16:19
|
(52) ДА
|
|||
55
HawkEye
04.07.17
✎
16:19
|
(50) что в ней не понятного?
реквизит Сотрудник - периодический - элемент справочника РежимПечати - переменная в которой хранится наименование ответственного менеджера |
|||
56
progaoff
04.07.17
✎
16:20
|
(51) Менеджер = Менеджер (ФИО)
|
|||
57
HawkEye
04.07.17
✎
16:20
|
(54) значит
" ПечНаименование = " Цена"; ПечЗамечание = "Не указана цена."; Если Заголовок = 0 Тогда Заголовок = 1; ДоговорСО = СпрДоговоры.ТекущийЭлемент(); Таб.ВывестиСекцию("Группировка"); КонецЕсли; Таб.ВывестиСекцию("Строка");" не выполнилось ))) |
|||
58
progaoff
04.07.17
✎
16:22
|
(57) там же = 0? а в переменной не 0
|
|||
59
AliAksA
04.07.17
✎
16:27
|
(58) оцепи якорь, сделай (51) и всем станет все ясно)))
|
|||
60
progaoff
04.07.17
✎
16:29
|
(59) я же сделал список высыпал фио менеджера = фио менеджера
|
|||
61
progaoff
04.07.17
✎
16:36
|
(60) только они не всегда одинаковые идет там к примерк Катя = Катя потом идет Леша = Катя
|
|||
62
AliAksA
04.07.17
✎
16:39
|
(61) ну а теперь почитай внимательно (37) и сделай выводы
и чего ты от такого кода хочешь ... ну допиливай код после: ИначеЕсли (Строка(Спр.Механик.Получить(ТекущаяДата())) = "") И (Спр.ПометкаУдаления() = 0) И (Спр.НаОбслуживании.Получить(ТекущаяДата()) = 1) Тогда |
|||
63
AliAksA
04.07.17
✎
16:41
|
лан, поиздевались, хватит ужо)))
(61) скопируй отсюда и замени у себя - и будет тебе счастье: ИначеЕсли (Строка(Спр.Механик.Получить(ТекущаяДата())) = "") И (Спр.ПометкаУдаления() = 0) И (Спр.НаОбслуживании.Получить(ТекущаяДата()) = 1) Тогда Если Спр.Цена.Получить(ТекущаяДата()) = 0 Тогда ПечНаименование = " Цена"; ПечЗамечание = "Не указана цена."; Если Заголовок = 0 Тогда Заголовок = 1; ДоговорСО = СпрДоговоры.ТекущийЭлемент(); Таб.ВывестиСекцию("Группировка"); КонецЕсли; Таб.ВывестиСекцию("Строка"); КонецЕсли; КонецЕсли; |
|||
64
progaoff
04.07.17
✎
16:46
|
(63) тоже самое(
|
|||
65
progaoff
04.07.17
✎
16:46
|
Если Спр.Цена.Получить(ТекущаяДата()) = 0 Тогда
ПечНаименование = " Цена"; ПечЗамечание = "Не указана цена."; Если Заголовок = 0 Тогда Заголовок = 1; ДоговорСО = СпрДоговоры.ТекущийЭлемент(); Таб.ВывестиСекцию("Группировка"); КонецЕсли; Таб.ВывестиСекцию("Строка"); КонецЕсли; ИначеЕсли (Строка(Спр.Механик.Получить(ТекущаяДата())) = "") И (Спр.ПометкаУдаления() = 0) И (Спр.НаОбслуживании.Получить(ТекущаяДата()) = 1) Тогда Если Спр.Цена.Получить(ТекущаяДата()) = 0 Тогда ПечНаименование = " Цена"; ПечЗамечание = "Не указана цена."; Если Заголовок = 0 Тогда Заголовок = 1; ДоговорСО = СпрДоговоры.ТекущийЭлемент(); Таб.ВывестиСекцию("Группировка"); КонецЕсли; Таб.ВывестиСекцию("Строка"); КонецЕсли; КонецЕсли; Исключение КонецПопытки; КонецЦикла; |
|||
66
AliAksA
04.07.17
✎
16:52
|
(65) а вот так ещё сделай (и дай результат):
ИначеЕсли (Строка(Спр.Механик.Получить(ТекущаяДата())) = "") И (Спр.ПометкаУдаления() = 0) И (Спр.НаОбслуживании.Получить(ТекущаяДата()) = 1) Тогда сообщить( "" + спр.ТекущийЭлемент() + " - " + Спр.Цена.Получить(ТекущаяДата())); Если Спр.Цена.Получить(ТекущаяДата()) = 0 Тогда |
|||
67
progaoff
04.07.17
✎
16:57
|
(66) Тоже самое. Сообщить вообще не выдал ничего
|
|||
68
progaoff
04.07.17
✎
16:59
|
Если Спр.Цена.Получить(ТекущаяДата()) = 0 Тогда
ПечНаименование = " Цена"; ПечЗамечание = "Не указана цена."; Если Заголовок = 0 Тогда Заголовок = 1; ДоговорСО = СпрДоговоры.ТекущийЭлемент(); Таб.ВывестиСекцию("Группировка"); КонецЕсли; Таб.ВывестиСекцию("Строка"); КонецЕсли; ИначеЕсли (Строка(Спр.Механик.Получить(ТекущаяДата())) = "") И (Спр.ПометкаУдаления() = 0) И (Спр.НаОбслуживании.Получить(ТекущаяДата()) = 1) Тогда сообщить( "" + спр.ТекущийЭлемент() + " - " + Спр.Цена.Получить(ТекущаяДата())); Если Спр.Цена.Получить(ТекущаяДата()) = 0 Тогда ПечНаименование = " Цена"; ПечЗамечание = "Не указана цена."; Если Заголовок = 0 Тогда Заголовок = 1; ДоговорСО = СпрДоговоры.ТекущийЭлемент(); Таб.ВывестиСекцию("Группировка"); КонецЕсли; Таб.ВывестиСекцию("Строка"); КонецЕсли; КонецЕсли; Исключение КонецПопытки; КонецЦикла; КонецЕсли; КонецЦикла; |
|||
69
AliAksA
04.07.17
✎
17:11
|
(67) О_О ну хз, попробуй ещё так:
ИначеЕсли (СокрЛП(Спр.Механик.Получить(ТекущаяДата())) = "") И (Спр.ПометкаУдаления() = 0) И (Спр.НаОбслуживании.Получить(ТекущаяДата()) = 1) Тогда сообщить( "" + спр.ТекущийЭлемент() + " - " + Спр.Цена.Получить(ТекущаяДата())); Если Спр.Цена.Получить(ТекущаяДата()) = 0 Тогда и протести перед "Попытка": сообщить( "" + Спр.Механик.Получить(ТекущаяДата())); |
|||
70
progaoff
04.07.17
✎
17:20
|
сообщить( "" + Спр.Механик.Получить(ТекущаяДата())); Матерится на метод агрегатного объекта не найден
|
|||
71
AliAksA
04.07.17
✎
17:26
|
(70) ну наконец-то)))
убирай попытку и проверяй адекватность кода - на наличие полей в справочниках и замени "спр" на что-нить уникальное, допустим "спрТовары" - возможна накладка переменных |
|||
72
progaoff
04.07.17
✎
17:27
|
поле агрегатного объекта не найдено (Механик)
|
|||
73
AliAksA
04.07.17
✎
17:32
|
(72) ну потому что его нет в справочнике ...
замени: ИначеЕсли (Спр.ПометкаУдаления() = 0) И (Спр.НаОбслуживании.Получить(ТекущаяДата()) = 1) Тогда сообщить( "" + спр.ТекущийЭлемент() + " - " + Спр.Цена.Получить(ТекущаяДата())); Если Спр.Цена.Получить(ТекущаяДата()) = 0 Тогда если не взлетит - тогда до завтра) |
|||
74
progaoff
04.07.17
✎
17:32
|
(71) так поля все в этом долбаном одном справочники
|
|||
75
progaoff
04.07.17
✎
17:33
|
(73) Попытку грохать?
|
|||
76
AliAksA
04.07.17
✎
17:34
|
(75) естественно, и отлаживай код без неё
|
|||
77
progaoff
04.07.17
✎
17:38
|
(76) Как то странно, то элемент на котором я смотрел пример - исчез, появилось другое теперь
|
|||
78
progaoff
04.07.17
✎
17:39
|
(77) Сообщить отработал
|
|||
79
AliAksA
04.07.17
✎
17:40
|
(77) ммм ... а что курил?
|
|||
80
progaoff
04.07.17
✎
17:40
|
(79) пока ничего)
|
|||
81
AliAksA
04.07.17
✎
17:40
|
(78) результат давай
|
|||
82
progaoff
04.07.17
✎
17:40
|
сообщить который выдал?
|
|||
83
AliAksA
04.07.17
✎
17:41
|
(82) да да да
|
|||
84
AliAksA
04.07.17
✎
17:42
|
ПЯТНИЧНО, ОДНАКО)))
|
|||
85
progaoff
04.07.17
✎
17:43
|
(83) кучу элементов с ценой и 0
Тра ла ла - 0 Бла бла бла - 500 и в таком стиле |
|||
86
progaoff
04.07.17
✎
17:45
|
Меркурий - 115К - 550
YARUS-M2100K - 1000 |
|||
87
AliAksA
04.07.17
✎
17:47
|
Теперь замени на ниже и результат сообщений кусок скопипасти сюда:
ИначеЕсли (Спр.ПометкаУдаления() = 0) И (Спр.НаОбслуживании.Получить(ТекущаяДата()) = 1) Тогда Если Спр.Цена.Получить(ТекущаяДата()) = 0 Тогда Сообщить( "" + спр.ТекущийЭлемент() + " - " + Спр.Цена.Получить(ТекущаяДата())); |
|||
88
AliAksA
04.07.17
✎
17:48
|
+(87) и по идее получишь перечень с нулевой ценой, по которым она будет выводить, а остальные - пропустит
|
|||
89
progaoff
04.07.17
✎
17:56
|
(88)ДА!!!!
|
|||
90
AliAksA
04.07.17
✎
17:56
|
А ещё попробуй так:
Пока Спр.ПолучитьЭлемент() = 1 Цикл Менеджер = Спр.Сотрудник.Получить(ТекущаяДата()).ОтветственныйМенеджер.Наименование; Сообщить("=" + Менеджер + "=" + РежимПечати + + "==" + ТипЗначенияСтр(Менеджер) + "|" + СтрДлина(Менеджер) + ТипЗначенияСтр(РежимПечати) + "|" + СтрДлина(РежимПечати)); это поможет тебе проанализировать сравниваемые данные |
|||
91
progaoff
04.07.17
✎
17:58
|
(90) Куда? после блока если?
|
|||
92
AliAksA
04.07.17
✎
18:02
|
(91) После "Пока Спр.ПолучитьЭлемент() = 1 Цикл"
|
|||
93
progaoff
04.07.17
✎
18:06
|
(91) (92) Ошибка в выражении
Менеджер = Спр.Сотрудник.Получить(ТекущаяДата()).ОтветственныйМенеджер.Наименование; Сообщить("=" + Менеджер + "=" + РежимПечати + + "==" + ТипЗначенияСтр(Менеджер) + "|" + СтрДлина(Менеджер) + ТипЗначенияСтр(РежимПечати) + "|" + СтрДлина(РежимПечати)); |
|||
94
AliAksA
04.07.17
✎
18:11
|
(93) переделывай на так:
Пока Спр.ПолучитьЭлемент() = 1 Цикл Если Спр.ПометкаУдаления() = 0 Тогда Если Спр.НаОбслуживании.Получить(ТекущаяДата()) = 1 Тогда Заголовок = 0; ПечОбъект = "Договор ТО №" + СокрЛП(СпрДоговоры.НомерДоговора) + " (" + СпрДоговоры.Контрагент.Наименование + "), модель " + Спр.Модель.Наименование + " (№" + СокрЛП(Спр.СерийныйНомер.ЗаводскойНомер) + ")"; Если (Спр.Телефон1 = "8( ) - - ") И (Спр.Телефон2 = "8( ) - - ") И (Спр.Телефон3 = "8( ) - - ") И (Спр.Телефон4 = "8( ) - - ") Тогда ПечНаименование = " Телефоны"; ПечЗамечание = "Не указан телефон."; Если Заголовок = 0 Тогда Заголовок = 1; ДоговорСО = СпрДоговоры.ТекущийЭлемент(); Таб.ВывестиСекцию("Группировка"); КонецЕсли; Таб.ВывестиСекцию("Строка"); КонецЕсли; а иначе если - можно удалить |
|||
95
AliAksA
04.07.17
✎
18:12
|
стоп!!! вот так сообщение сделай:
Менеджер = Спр.Сотрудник.Получить(ТекущаяДата()).ОтветственныйМенеджер.Наименование; Сообщить("=" + Менеджер + "=" + РежимПечати + "==" + ТипЗначенияСтр(Менеджер) + "|" + СтрДлина(Менеджер) + "=" + ТипЗначенияСтр(РежимПечати) + "|" + СтрДлина(РежимПечати)); |
|||
96
AliAksA
04.07.17
✎
18:17
|
(0) лан, извини, пора идти, но твой код будет красивше, если переделаешь на такой:
Перем Спр, Заголовок; //*********************************************** Процедура ВыводСекций() ПечНаименование = " Телефоны"; ПечЗамечание = "Не указан телефон."; Если Заголовок = 0 Тогда Заголовок = 1; ДоговорСО = СпрДоговоры.ТекущийЭлемент(); Таб.ВывестиСекцию("Группировка"); КонецЕсли; Таб.ВывестиСекцию("Строка"); КонецПроцедуры // ВыводСекций() //*********************************************** .... Пока Спр.ПолучитьЭлемент() = 1 Цикл Если Спр.ПометкаУдаления() = 0 Тогда Если Спр.НаОбслуживании.Получить(ТекущаяДата()) = 1 Тогда Заголовок = 0; ПечОбъект = "Договор ТО №" + СокрЛП(СпрДоговоры.НомерДоговора) + " (" + СпрДоговоры.Контрагент.Наименование + "), модель " + Спр.Модель.Наименование + " (№" + СокрЛП(Спр.СерийныйНомер.ЗаводскойНомер) + ")"; Если (Спр.Телефон1 = "8( ) - - ") И (Спр.Телефон2 = "8( ) - - ") И (Спр.Телефон3 = "8( ) - - ") И (Спр.Телефон4 = "8( ) - - ") Тогда ПечНаименование = " Телефоны"; ПечЗамечание = "Не указан телефон."; ВыводСекций(); КонецЕсли; Если (Спр.ДатаЗаменыЭКЛЗ.Получить(ТекущаяДата()) < ТекущаяДата()) ИЛИ (ПустоеЗначение(Спр.ДатаЗаменыЭКЛЗ.Получить(ТекущаяДата())) = 1) Тогда ПечНаименование = " ЭКЛЗ"; Если ПустоеЗначение(Спр.ДатаЗаменыЭКЛЗ.Получить(ТекущаяДата())) = 1 Тогда ПечЗамечание = "Дата блокировки ЭКЛЗ не указана."; ИначеЕсли Спр.ДатаЗаменыЭКЛЗ.Получить(ТекущаяДата()) < ТекущаяДата() Тогда ПечЗамечание = "Просрочена дата замены ЭКЛЗ."; КонецЕсли; ВыводСекций(); КонецЕсли; Если ПустоеЗначение(Спр.МестоУстановки.АдресФакт) = 1 Тогда ПечНаименование = " Адрес эксплуатации"; ПечЗамечание = "Не указан адрес места эксплуатации."; ВыводСекций(); КонецЕсли; // и так далее ... КонецЕсли; КонецЕсли; КонецЦикла; |
|||
97
progaoff
04.07.17
✎
18:21
|
(94) (96) Спасибо
|
|||
98
progaoff
04.07.17
✎
18:50
|
Пока Спр.ПолучитьЭлемент() = 1 Цикл
Менеджер = Спр.Сотрудник.Получить(ТекущаяДата()).ОтветственныйМенеджер.Наименование; Сообщить("=" + Менеджер + "=" + РежимПечати + "==" + ТипЗначенияСтр(Менеджер) + "|" + СтрДлина(Менеджер) + "=" + ТипЗначенияСтр(РежимПечати) + "|" + СтрДлина(РежимПечати)); Если Спр.ПометкаУдаления() = 0 Тогда Если Спр.НаОбслуживании.Получить(ТекущаяДата()) = 1 Тогда Заголовок = 0; ПечОбъект = "Договор ТО №" + СокрЛП(СпрДоговоры.НомерДоговора) + " (" + СпрДоговоры.Контрагент.Наименование + "), модель " + Спр.Модель.Наименование + " (№" + СокрЛП(Спр.СерийныйНомер.ЗаводскойНомер) + ")"; Если (Спр.Телефон1 = "8( ) - - ") И (Спр.Телефон2 = "8( ) - - ") И (Спр.Телефон3 = "8( ) - - ") И (Спр.Телефон4 = "8( ) - - ") Тогда ПечНаименование = " Телефоны"; ПечЗамечание = "Не указан телефон."; Если Заголовок = 0 Тогда Заголовок = 1; ДоговорСО = СпрДоговоры.ТекущийЭлемент(); Таб.ВывестиСекцию("Группировка"); КонецЕсли; Таб.ВывестиСекцию("Строка"); КонецЕсли; Если (Спр.ДатаЗаменыЭКЛЗ.Получить(ТекущаяДата()) < ТекущаяДата()) ИЛИ (ПустоеЗначение(Спр.ДатаЗаменыЭКЛЗ.Получить(ТекущаяДата())) = 1) Тогда ПечНаименование = " ЭКЛЗ"; Если ПустоеЗначение(Спр.ДатаЗаменыЭКЛЗ.Получить(ТекущаяДата())) = 1 Тогда ПечЗамечание = "Дата блокировки ЭКЛЗ не указана."; ИначеЕсли Спр.ДатаЗаменыЭКЛЗ.Получить(ТекущаяДата()) < ТекущаяДата() Тогда ПечЗамечание = "Просрочена дата замены ЭКЛЗ."; КонецЕсли; Если Заголовок = 0 Тогда Заголовок = 1; ДоговорСО = СпрДоговоры.ТекущийЭлемент(); Таб.ВывестиСекцию("Группировка"); КонецЕсли; Таб.ВывестиСекцию("Строка"); КонецЕсли; Если ПустоеЗначение(Спр.МестоУстановки.АдресФакт) = 1 Тогда ПечНаименование = " Адрес эксплуатации"; ПечЗамечание = "Не указан адрес места эксплуатации."; Если Заголовок = 0 Тогда Заголовок = 1; ДоговорСО = СпрДоговоры.ТекущийЭлемент(); Таб.ВывестиСекцию("Группировка"); КонецЕсли; Таб.ВывестиСекцию("Строка"); КонецЕсли; Если ПустоеЗначение(Спр.МестоУстановки.Метро) = 1 Тогда ПечНаименование = " Метро"; ПечЗамечание = "Не указана станция метро места эксплуатации."; Если Заголовок = 0 Тогда Заголовок = 1; ДоговорСО = СпрДоговоры.ТекущийЭлемент(); Таб.ВывестиСекцию("Группировка"); КонецЕсли; Таб.ВывестиСекцию("Строка"); КонецЕсли; Если ПустоеЗначение(Спр.ИФНС) = 1 Тогда ПечНаименование = " ИФНС"; ПечЗамечание = "Не указан ИФНС."; Если Заголовок = 0 Тогда Заголовок = 1; ДоговорСО = СпрДоговоры.ТекущийЭлемент(); Таб.ВывестиСекцию("Группировка"); КонецЕсли; Таб.ВывестиСекцию("Строка"); ИначеЕсли ПустоеЗначение(Спр.ИФНС.Адрес) = 1 Тогда ПечНаименование = " ИФНС"; ПечЗамечание = "Не указан адрес ИФНС."; Если Заголовок = 0 Тогда Заголовок = 1; ДоговорСО = СпрДоговоры.ТекущийЭлемент(); Таб.ВывестиСекцию("Группировка"); КонецЕсли; Таб.ВывестиСекцию("Строка"); КонецЕсли; Если Спр.Цена.Получить(ТекущаяДата()) = 0 Тогда ПечНаименование = " Цена"; ПечЗамечание = "Не указана цена."; Если Заголовок = 0 Тогда Заголовок = 1; ДоговорСО = СпрДоговоры.ТекущийЭлемент(); Таб.ВывестиСекцию("Группировка"); КонецЕсли; Таб.ВывестиСекцию("Строка"); КонецЕсли; ИначеЕсли (Спр.ПометкаУдаления() = 0) И (Спр.НаОбслуживании.Получить(ТекущаяДата()) = 1) Тогда Если Спр.Цена.Получить(ТекущаяДата()) = 0 Тогда ПечЗамечание = "Не указана цена."; Если Заголовок = 0 Тогда Заголовок = 1; ДоговорСО = СпрДоговоры.ТекущийЭлемент(); Таб.ВывестиСекцию("Группировка"); КонецЕсли; Таб.ВывестиСекцию("Строка"); КонецЕсли; КонецЕсли; КонецЕсли; КонецЦикла; КонецЕсли; КонецЦикла; |
|||
99
progaoff
04.07.17
✎
18:51
|
Все равно выводит записи в которых есть цена
|
|||
100
Ёпрст
04.07.17
✎
19:38
|
(98) всё не читал, заместо Получить(текущаяДата)
пользуй лучше спр.ИспользоватьДату(ТекущаяДата) и не надо Получить тогда, просто обращяйся к периодике через точку, всё равно её за одну дату имеешь |
|||
101
HawkEye
04.07.17
✎
21:44
|
(99) ты же умеешь пользоваться отладчиком, что мешает найти причину вывода секции?
|
|||
102
progaoff
05.07.17
✎
11:56
|
(101) Нет причины, в отладчике показывает что цена есть
|
|||
103
HawkEye
05.07.17
✎
11:59
|
(102) причина есть всегда, ищи лучше...
|
|||
104
progaoff
05.07.17
✎
14:48
|
Процедура ОтборПоСписку()
Если ЗначениеОтбораФирмы.Выбран() > 0 Тогда УстановитьОтбор("БП_ВидДокумента_Фирма","СЧ"+ЗначениеОтбораФирмы.Код); Инача УстановитьОтбор("БП_ВидДокумента", "СЧ"); КонецПроцедуры; Это отбор ПриОткрытии() Если ТипЗначенияСтр(Форма.Параметры) = "Документ" Тогда глАктивизироватьДокумент(Контекст, Форма.Параметр); КонецЕсли; Если НазваниеИнтерфейса() = "АдминистраторКрым" Тогда Форма.ВсеФирмы.Видимость(0); Форма.ЗначенияОтбораФирмы.Доступность(0); КонецЕсли; ЗначениеОтбораФирмы = гл.Пользователь.ОсновнаяФирма; ОтборПоСписку(); КонецПроцедуры; Это процедура при открытии. Это все в форме списка Журнала "Счета". При открытии или установки фильтра по незвестной причине теряется часть документов. не отображаются. |
|||
105
Ёпрст
05.07.17
✎
14:54
|
(104) переиндексируй базу, это, для начала
|
|||
106
progaoff
05.07.17
✎
15:07
|
(105) А конструкция то нормальная?
|
|||
107
progaoff
05.07.17
✎
16:03
|
(106) что поменять можно?
|
|||
108
HawkEye
05.07.17
✎
16:41
|
(104) не отображаются - потому что отбор наложен... что не так?
|
|||
109
progaoff
05.07.17
✎
16:49
|
(108) поясни плиз)
|
|||
110
HawkEye
05.07.17
✎
17:00
|
(109) что именно пояснить?
ты пишешь "не отображаются часть документов"... при этом в коде накладываешь на журнал Отбор... разве концепция отбора не в том, чтобы не отображать часть документов? |
|||
111
progaoff
05.07.17
✎
17:20
|
(110) сам отбор криво работает часть доков не выводит в журнал по параметрам подходящих для вывода
|
|||
112
HawkEye
05.07.17
✎
17:24
|
(111) отбор и все остальные механизмы работает ровно так как им написали....
|
|||
113
пипец
05.07.17
✎
17:29
|
если где то к этому справочнику был применен использоватьдату - получить работать не будет
|
|||
114
progaoff
06.07.17
✎
17:10
|
Такой вопрос, возможно ли разделить кассовую книгу по организациям? Все та же 7.7
|
|||
115
progaoff
06.07.17
✎
17:11
|
В запросе я добавил выбор организаций, но остаток на конец дня показывает общий.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |