Имя: Пароль:
1C
1C 7.7
v7: Не работает условие в печатной форме 1с
,
0 max805
 
31.01.13
02:46
Есть внешняя печатная форма к документу. В документе есть 3 колонки (заказ, факт, разница(разница считается по разнице между колонками факт и заказ)) в печатной форме делаю условие что если в колонке разница 0 (во всех позициях) то в печатной форме пишеться "отклонений нету" если есть отклонения (в любой строке больше или меньше нуля тогда в печатной форме пишетсья есть отклонения.
вот код
Если Док.Разница="" Тогда
Отклонение="Отклонений нету";
Иначе
Отклонение="Есть отклоенение";
КонецЕсли;
Но условие не срабатывает. то есть даже если есть отклоенения он пишет отклонений нету где ошибка скажите плиз
1 max805
 
31.01.13
02:47
Если Док.Разница=0 Тогда
Отклонение="Отклонений нету";
Иначе
Отклонение="Есть отклоенение";
КонецЕсли;

в таком случае всегда пишет есть отклонения даже тогда когда их нету
2 Попытка1С
 
31.01.13
02:53
Мало кода.
3 max805
 
31.01.13
02:55
Всмысле? условие что если в колонки 0 тогда выполняеться условие в случае если больше или меньше нуля выполняеться другое условие..что еще нужно?
4 Попытка1С
 
31.01.13
02:57
(3) Посмотрел твои темы, больше ничего не нужно ты прав.
5 max805
 
31.01.13
03:01
если помочь не можешь ну или не хочешь то зачем воздух то сотрясать?
6 max805
 
31.01.13
03:01
как будто ты 1с с пеленок знал
7 sanja26
 
31.01.13
03:03
(0) ты с какой дерёвни? нету..
8 max805
 
31.01.13
03:04
"у" случаяно написал..опечатка
9 Balabass
 
31.01.13
03:05
а если не писать условие - то что в печатную форму попадает?
10 sanja26
 
31.01.13
03:06
я думаю ключевое слово "колонка"
11 Попытка1С
 
31.01.13
03:06
(5)  что тебе не понятно (2)?
Или у тебя весь код внешней печатной формы приведен в (0)?
Что выдает сообщить(""+док.разница);
12 Попытка1С
 
31.01.13
03:08
И где код перебора строк если эти реквизиты в тч
13 max805
 
31.01.13
03:10
он даже по 1 строке не срабатывает..а тут перебор строк не нужен
14 Попытка1С
 
31.01.13
03:13
(13)  ну да и выбратьстроки тоже не надо делать, ага..
15 max805
 
31.01.13
03:14
пишет ошибку на ВыбратьСтроки()
переменная не оперделена
16 Попытка1С
 
31.01.13
03:16
(15)  писец, док.выбратьстроки()
17 max805
 
31.01.13
03:19
Док.ВыбратьСтроки()
Если Док.Разница=0 Тогда
Отклонение="Отклонений нету";
Иначе
Отклонение="Есть отклоенение";
КонецЕсли;

результат тот же
18 max805
 
31.01.13
03:20
пишет есть отклонения хотя отклонений нету ..колонка Разница пустая
19 Web00001
 
31.01.13
03:20
>>как будто ты 1с с пеленок знал
>>Стаж: 3 г. 6 мес.
Вопросы начали возникать года три назад, за это время должны были дойти такие очевидные вещи, что строки надо перебирать вне зависимости от их количества.
20 Попытка1С
 
31.01.13
03:21
Строчку получить не нужно по твоему? Есть метод специальный
21 max805
 
31.01.13
03:22
Попытка1С всмысле полчуить строку? Выбратьстроку() это не перебор строк?
22 Web00001
 
31.01.13
03:23
(21)Это открытие выборки,
сам перебор выполняется методом из (20)
23 Попытка1С
 
31.01.13
03:24
(21)  у тебя сп украли? Метод выбратьстроки открывает выборку, а выборку нужно обойти, ну или спозиционировать на первой строке хотя бы, через получитстрокупономеру
24 max805
 
31.01.13
03:28
Web00001

Док.ВыбратьСтроки()
Пока Док.ПолучитьСтроку=1 Цикл
......
.....
КонецЦикла?
Верноя я понимаю?
25 Попытка1С
 
модератор
31.01.13
03:29
(24)  скобки забыл
26 max805
 
31.01.13
03:30
Где скобки?
27 Web00001
 
31.01.13
03:31
Док.ПолучитьСтроку()
28 Попытка1С
 
31.01.13
03:32
Еще два тупых вопроса и пойдешь в бан читать СП, договорились?
29 Web00001
 
31.01.13
03:32
все остальное вроде норм, дальше если не будет получаться отладчик решит твою проблему.
30 max805
 
31.01.13
03:34
сделал...он вообще отказываеться выодить какой либо текст в печ форму при любых условиях (ошибки в в конфиге не в базе не выдал)
31 Попытка1С
 
31.01.13
03:35
(30)  код сестра!
32 max805
 
31.01.13
03:39
//секция заголовок
Док.ВыбратьСтроки()
Пока Док.Выбратьстроки()=1 Цикл
Если Док.Разница=0 Тогда
Отклонение="Отклонений нету";
Иначе
Отклонение="Есть отклоенение";
КонецЕсли;
УонецЦикла;
33 max805
 
31.01.13
03:39
Док.ВыбратьСтроки()
Пока Док.Выбратьстроки()=1 Цикл
Если Док.Разница="" Тогда
Отклонение="Отклонений нету";
Иначе
Отклонение="Есть отклоенение";
КонецЕсли;
УонецЦикла;
34 max805
 
31.01.13
03:39
второй правильный
35 max805
 
31.01.13
03:40
//секция заголовок

Док.ВыбратьСтроки()
Пока Док.Выбратьстроки()=1 Цикл
Если Док.Разница="" Тогда
Отклонение="Отклонений нету";
Иначе
Отклонение="Есть отклоенение";
КонецЕсли;
КонецЦикла;

Сори за орфографию
36 jyupiter
 
31.01.13
03:41
Док.ВыбратьСтроки()
Пока Док.ПолучитьСтроку()=1 Цикл
Если Док.Разница="" Тогда
Отклонение="Отклонений нету";
Иначе
Отклонение="Есть отклоенение";
КонецЕсли;
КонецЦикла;
37 jyupiter
 
31.01.13
03:41
Пока Док.ПолучитьСтроку()=1 Цикл
38 max805
 
31.01.13
03:42
jyupiter так и написано ..я не копирую с конфигуратора (нет возможности) вручную пишу
39 jyupiter
 
31.01.13
03:42
Тогда попробуй так
Если Док.Разница=0 Тогда
40 Попытка1С
 
31.01.13
03:43
У тебя остался последний шанс.
41 Попытка1С
 
31.01.13
03:43
Ну сделай сообщить (отклонение)
42 max805
 
31.01.13
03:44
jyupiter
тока что попробывал
гв печ форме где должен выводиться текст пусто
43 max805
 
31.01.13
03:45
Попытка1С
всмысле сделать сообщить?
44 Попытка1С
 
31.01.13
03:47
(43)  я не могу быть увереным что ты там выводишь и как, пожтому воткни сообщить(отклонение) в цикл после присвоения
45 jyupiter
 
31.01.13
03:48
у тебя сообщение об отклонениях выводится в итоговой строке или в каждой строчке?
46 max805
 
31.01.13
03:49
Попытка1С
давай я тебе дам доступ по тимвиверу..посмотри плиз
47 jyupiter
 
31.01.13
03:50
Из (0) вроде бы в итоговой
Тогда должно сработать вот такое

Отклонение="Отклонений нету";
Док.ВыбратьСтроки();
Пока Док.ПолучитьСтроку()=1 Цикл
Если Док.Разница <> 0 Тогда
Отклонение="Есть отклонение";
КонецЕсли;
КонецЦикла;
48 Попытка1С
 
31.01.13
03:50
(46) я с айпада да и както нечего уже показывать, все разжовано.
49 max805
 
31.01.13
03:55
jyupiter
появляеться слово отклонений нету" даже в случае когда они есть
50 jyupiter
 
31.01.13
03:56
реквизит Док.Разница какого типа?
51 max805
 
31.01.13
03:59
Чило
52 max805
 
31.01.13
04:14
up
53 Злопчинский
 
31.01.13
04:15
давай уже кидай н [email protected] bl ипароль к тиму, посмотрим что там
54 jyupiter
 
31.01.13
04:15
ну да, тупик
пока нет уверенности, какой именно текст у тебя в конфигураторе (раз у тебя нет возможности оттуда копировать), сложно сказать, где ошибка

Разница - это реквизит документа, заданный в конфигураторе или колонка в табличной части на форме документа?
55 Злопчинский
 
31.01.13
04:16
"отклонений нету"
.
- я сижу на берегУ,
не могу поднять ногУ,
- не ногУ, а нОгу!
- всё равно не мОгу!
56 max805
 
31.01.13
04:17
jyupiter
это колонка в таб части
57 Злопчинский
 
31.01.13
04:17
(52) долго ид и пароль ждать? а то спать пойду? там дел-то на 5-7 минут с пояснениями...
58 Злопчинский
 
31.01.13
04:18
(54) в личке поправь: "программист из низинки" ;-)
59 Злопчинский
 
31.01.13
04:19
max805 - будем сопли жевать или проблему решать?
60 max805
 
31.01.13
04:19
Злопчинский
выслал пароль
61 jyupiter
 
31.01.13
04:25
(56) тогда бессмысленно обращаться к ней как к реквизиту.
Поставь в условие вместо Док.Разница формулу для расчёта этой разницы, в которой будут фигурировать только настоящие реквизиты документа.
62 Злопчинский
 
31.01.13
04:32
(61) тут тебе наговорили хрени явсякой.
все свелось к
Отклонение = ?(Докум.Итог("Разница")=0,"Отклонений НЕТ","Отклонения ЕСТЬ");
.
вопрос закрыт.
63 jyupiter
 
31.01.13
04:46
А если разница в одной строке равна 5, а в другой минус 5, а в остальных по нулям?
64 Злопчинский
 
31.01.13
04:55
(63) это ты молодец! уел старикана! ;-)
тады топикстартер пусть перебирает строки до получения первой разницы, отличной от нуля...
.
Отклонение = "Отклонений НЕТ";
Докум.ВыбратьСтроки();
Пока Докум.ПолучитьСтроку()=1
Цикл
 Если Докум.Разница = 0
 Тогда
   Продолжить;
 КонецЕсли;
 Отклонение =  "Отклонения ЕСТЬ";
 Прервать;
КонецЦикла;
.
это если тупо.
потому что ниже, после вывода шапки идет перебор строк еще раз...
65 jyupiter
 
31.01.13
05:11
я писал в (47) примерно то же самое
только надо строчку добавить для экономии времени
Отклонение="Отклонений нету";
Док.ВыбратьСтроки();
Пока Док.ПолучитьСтроку()=1 Цикл
Если Док.Разница <> 0 Тогда
Отклонение="Есть отклонение";
Прервать;
КонецЕсли;
КонецЦикла;

но ТС сказал, что так отклонения не фиксируются
66 Злопчинский
 
31.01.13
06:18
(65) Док и Докум
67 jyupiter
 
31.01.13
08:07
(66) Ясно.
Догадаться до этого по текстам ТС было невозможно, ящетаю)
68 Попытка1С
 
31.01.13
08:35
Писец
Независимо от того, куда вы едете — это в гору и против ветра!