Имя: Пароль:
1C
1C 7.7
v7: Перебор и анализ документов за заданный период
0 bananan
 
08.02.13
15:49
Все добрый день!
Прошу совета/подскзки...
Задача такая сделать отчет, который выдает документы (определенного вида) за заданный период, в которых функция глПроверкаЦеныПоКатегории(Конт) "выдала ошибку" (реально функция ошибку вроде как не выдает, она может вывести Сообщение...)
Так вот я что-то опять с ручника не снялся и не пойму с какого конца здесь начать...
Лучше, если кто скажет где в конфигурации можно найти подобный отчет?
1 GLazNik
 
08.02.13
15:50
(0) начинать нужно с вызова специалиста.
2 bananan
 
08.02.13
15:51
(1) Очень полезный совет!
3 Митор
 
08.02.13
15:52
Ну записываете в ЖР сообщение и потом ЖР по ЖР отчет
4 GLazNik
 
08.02.13
15:53
(2) я рад что он вам помог.
(3) :)
5 РусланХут
 
08.02.13
15:54
ну или перебирать документы и применять к ним ту-же проверку, что и внутри процедуры прописана
6 bananan
 
08.02.13
15:56
(3) что такое ЖР?
7 GLazNik
 
08.02.13
15:58
(6) журнал регистрации
8 Mikeware
 
08.02.13
15:59
Не, реально можно через ВыполняемыйМодуль попробовать.
Но объяснять это ТС...
хватило веток про запросы...
можно тупо скопировать функцию (если, конечно, это нормальная функкция, не меняющая значений) и прогнать выборку через нее.
можно проанализировать функцию, и написать "искалку условий".
вариантов туева хуча...
9 bananan
 
08.02.13
16:00
(7) Что-то я не вижу такого журнала в 1С..
10 GLazNik
 
08.02.13
16:01
(8) а скорее всего в этой функции идет простое сравнение цены из документа с фиксированной ценой
11 bananan
 
08.02.13
16:01
(8) Ок, какой отчет есть в конфе, который просто перебирает документы?
12 Mikeware
 
08.02.13
16:04
(11) убейся об стену... с разбега...
ибо утонуть тебе не грозит...
13 Митор
 
08.02.13
16:04
(11) у мну есть отчет "отчет" в конфе, он тупо перебирает документы :)
14 Ёпрст
 
08.02.13
16:09
Санитара вызывали ?
Какие симптомы у пациента ?
15 bananan
 
08.02.13
16:13
(11) Не помогло :)
(14) Не вызывали...
16 Eugene_life
 
08.02.13
16:14
(15) Перебрать документы тебя не спасет. тебе ж нужно к каждому документу применить проверку. так что без вызова программиста не обойтись. Хотя бы удаленно.
17 Ёпрст
 
08.02.13
16:14
открой пофигуратор, открой ЖР в предприятии, выстави там галки - ошибки, далее тыркни по ошибке - поподешь в нужный млдуль в пофигураторе.
Наслаждайся.
19 Mikeware
 
08.02.13
16:15
(17) у него там не ошибка, у него там сообщение...
20 Mikeware
 
08.02.13
16:16
+(19) а ошибка у него в другом месте...
21 bananan
 
08.02.13
16:19
Mikeware ты видно такой программист, что за все время от тебя ни одного совета не было - один стеб
22 GLazNik
 
08.02.13
16:21
(21) «Правильно заданный вопрос – половина ответа»(с)
23 Mikeware
 
08.02.13
16:22
(21) советовал. Ты не понял.
а "делать за" я не люблю.
поэтому остается стебаться...
24 bananan
 
08.02.13
16:22
(17) говорю же не вижу я ЖР в предприятии, в пункте Журналы?
25 Mikeware
 
08.02.13
16:23
(24) это все потому, что (20)
26 GLazNik
 
08.02.13
16:23
(24) Как все запущенно
27 bananan
 
08.02.13
16:24
(25)-(26) А где искать ЖР слабо сказать?
28 Ёпрст
 
08.02.13
16:26
ЖР-журнал регистрации  если че
29 bananan
 
08.02.13
16:28
(28) Да это я уже понял, но я его не вижу ни в конфигураторе ни в предприятии...
30 Mikeware
 
08.02.13
16:28
(28) см (7)(9) и (24) :-)))
31 GLazNik
 
08.02.13
16:29
(27) не то что бы слабо... а смысл?
32 GLazNik
 
08.02.13
16:30
+31 а так... смотри монитор пользователей
33 maxar
 
08.02.13
16:31
типично пятничная ветка...
34 bananan
 
08.02.13
16:33
Вообще, думаю сделать так.. На форме юзер выбирает период...
Докменты РасходнаяНакладная и РасходнаяНАкладнаяН (именно такие документы нужны) за заданный период времени поочередно "открываются" к каждой строке документа применяется переписанная функция и если оригинальная функция в данной строке выдает сообщение, то перписанная функция вернет ошибку, и если документ имеет ошибку - он попадает в итоговый список
35 bananan
 
08.02.13
16:35
(32) То что ЖР в мониторе пользоватлей можно было и сразу сказать, а вообше, он не подходит
36 GLazNik
 
08.02.13
16:39
(34) сделай
(35) ну с 1С шли такие желтенькие книжечки. Обязательны к прочтению. там как раз про это и было сказано
37 Mikeware
 
08.02.13
16:39
(34) за 45 минут можно было это уже сделать...
38 bananan
 
08.02.13
16:42
(36) Дак сделаю.. единственное я нифига не помню, потому и прошу подскажите похожий отчет в конфигурации
39 GLazNik
 
08.02.13
16:44
(38) "не помню" или не знал?
40 bananan
 
08.02.13
16:47
(39) Да нет - не помню, в прошлом месяце я писал какой-то отчет который именно перебирал построчно документы..
41 GLazNik
 
08.02.13
16:48
(40) ну и память.
42 Mikeware
 
08.02.13
16:49
(39) Не знал, да еще и забыл....
43 bananan
 
08.02.13
16:50
(41) Ну это у тебя террабайты мозгов
(42) найду то что написал - с я тебе предоставлю то что "не знал"
44 GLazNik
 
08.02.13
16:56
(43) А если серьезно. Вы уверены что сейчас занимаетесь своим делом? Вы активно задаете вопросы на форуме с 2008 года и не знаете как перебрать документы и вывести их в отчет.
45 Mikeware
 
08.02.13
17:00
(44) с памятью проблемы...
как сказал Саныч в 1985 году:
"шура, у тебя память - как 1 килобайт! вроде и есть - и куй чо запомнишь!"©
46 bananan
 
08.02.13
17:13
(44) Уверен! Дело в том что еще кроме работы есть много обстоятельств...
А по поводу программирования в данный момент кроме того что на работе 1С, я пишу программу на Дельфи, рнр-скрипты, движки для сайтов, а еще довожу ремонт в квартире до путя....
47 sapphire
 
08.02.13
17:22
(0) Ну освой наконец DOCPRINT.ERT
48 bananan
 
08.02.13
17:37
(47) судя по расширению - это внешний отчет - сейчас поищу
49 bananan
 
08.02.13
17:38
+(48) на сервере у нас такого файла (DOCPRINT.ERT) я не нашел
50 Cthulhu
 
08.02.13
17:44
(49): не беда. все равно он тебе не поможет.
ВыбДок=СоздатьОбъект("Документ.ТоШоНадоПроверить");
ВыбДок.ВыбратьДокументы(НачПериода,КонПериода);
Пока ВыбДок.ПолучитьДокумент()<>0 Цикл
 Состояние("Проверка "+ВыбДок+" ...");
 Попытка глПроверкаЦеныПоКатегории(ВыбДок) Исключение
   Сообщить("Документ """+ВбДок+""" >>> ОШИБКА "+?(ПустоеЗначение(ОписаниеОшибки())<>0,"<Неизвестного типа>",""""+ОписаниеОшибки()+""""),"!!");
 КонецПопытки;
КонецЦикла; Состояние("");
как-то так...
51 bananan
 
08.02.13
17:45
А вообще в 1С не мало непоняток, например сейчас вывожу резхультат работы запроса...
код Таб.ТолькоПросмотр(1); означает что даннуб таблицу нельзя редактировать... Ага, разбежались ... запускаю и запроста все поля в таблице редактируются

или в данном случае сработал код Таб.Защита(0);?
Тогда зачем ТолькоПросмотр и Защита, если они друг друга не видят?
52 bananan
 
08.02.13
17:46
(50) Большое СПАСИБО!!!
53 Mikeware
 
08.02.13
17:51
(51) все это описано в ЖКК. И даже в СП.
54 bananan
 
08.02.13
17:52
(53) Ты как всегда с актуальным советом и во время
55 bananan
 
08.02.13
18:19
Еще, пардон, а в чем разница между функцией и процедурой в языке программирования 1С?
56 GLazNik
 
08.02.13
18:20
(55)(46) "я пишу программу на Дельфи, рнр-скрипты, движки для сайтов" точно?
57 GLazNik
 
08.02.13
18:21
+56 или опять, не знал, но забыл?
58 bananan
 
08.02.13
18:21
(56) В рнр - все функции, в дельфи - функция возвращает значение, процедура не возращает значения
59 sapphire
 
08.02.13
18:22
(53) Я так и знал что ты тут втихаря СП подрабатываешь :)
60 bananan
 
08.02.13
18:22
Функция глПроверкаЦеныПоКатегории(Конт) Экспорт
   Перем кат,минцена,докцена;
   Если (Константа.ГруппаИсключенияПроверкиЦен.Выбран()=1)и(Конт.ТМЦ.ПринадлежитГруппе(Константа.ГруппаИсключенияПроверкиЦен)=1) Тогда
       Если НазваниеНабораПрав()="Администратор" Тогда
           Сообщить(""+Конт.номерСтроки+"."+Конт.ТМЦ+" исключен из проверки на минимальную цену");
       КонецЕсли;
   КонецЕсли;
   //Если ТМЦ Справочник НазначитьВид(ТМЦ) - ошибка в периодических
   прихцена=Окр(Конт.ТМЦ.Цена_Прих.Получить(Конт.ДатаДок)*(1+Конт.ТМЦ.СтавкаНДС.Ставка.Получить(Конт.ДатаДок)),2);
   докцена=Окр(?(Конт.Кво*Конт.Коэффициент=0,0,Конт.СуммаСНДС/(Конт.Кво*Конт.Коэффициент)),2);
   Если докцена<прихцена Тогда
       ВсеВыбрано = ?((ДоступАдмина+ДоступБуха)=2,0,ВсеВыбрано);
       Сообщить(""+Конт.номерСтроки+"."+Конт.ТМЦ+" имеет цену ниже приходной");
   КонецЕсли;
   кат=Конт.Доставка.КаналСбытаТТ.КатегорияЦены;
   Если кат.Выбран()=1 Тогда
       минцена=Конт.ТМЦ.ПолучитьАтрибут("Цена"+Число(Прав(кат.Идентификатор(),1)));
       Если Метаданные.Справочник("ТМЦ").Реквизит("Цена"+Число(Прав(кат.Идентификатор(),1))).Периодический=1 Тогда
           минцена=минцена.Получить(Конт.ДатаДок);
       КонецЕсли;
       минцена=минцена*(1+Конт.ТМЦ.СтавкаНДС.Ставка.Получить(Конт.ДатаДок));
       Если минцена=0 Тогда
           ВсеВыбрано = ?((ДоступАдмина+ДоступБуха)=2,0,ВсеВыбрано);
           Сообщить(""+Конт.номерСтроки+"."+Конт.ТМЦ+" не установлена цена категории "+кат);
       КонецЕсли;
       минцена=Окр(минцена*(1-Конт.Доставка.КаналСбытаТТ.ДопустимаяСкидка/100),2);
       Если докцена<минцена Тогда
           ВсеВыбрано = ?((ДоступАдмина+ДоступБуха)=2,0,ВсеВыбрано);
           Сообщить(""+Конт.номерСтроки+"."+Конт.ТМЦ+" имеет недопустимо низкую цену="+докцена+" минимальная="+минцена);
       КонецЕсли;
   КонецЕсли;
КонецФункции // глПроверкаЦеныПоКатегории
А теперь вопрос, КАКОЕ ЗЭНАЧЕНИЕ возвращает эта функция?? (Сообщить?)
61 GLazNik
 
08.02.13
18:25
(60) никакое. функция используется как процедура.
62 bananan
 
08.02.13
18:27
(60) Тогда почему это функци, а не процедура?...
Ну да черт с ним, а если, например мне нужно чтобы  функция вернула скажем в понятиях 1С таблицу значений, то как это сделать?
63 bananan
 
08.02.13
18:29
+(62) Применительно к моей текущей задаче... если в какой-то строке документа ошмибка, функция возвращает: номер документа и его автора, строку в которой ошибка и описание ошибки
64 Mikeware
 
08.02.13
18:30
(62) почитать документацию.
65 GLazNik
 
08.02.13
18:33
(62) "Тогда почему это функци, а не процедура?..." это к автору функции
по существу. точно так же как в дельфях и пэашпэ: Возврат что-то;
(64) [:]||||[] :)
66 Mikeware
 
08.02.13
18:34
(65) ""Тогда почему это функци, а не процедура?..." это к автору функции" - у них там гнездо!!!
67 bananan
 
08.02.13
18:41
(64)-(66) Так фунгкция может вернут таблицу значений?
68 Mikeware
 
08.02.13
18:48
(67) конечно.
69 bananan
 
08.02.13
18:49
Хорошо (хотя - хорошего мало).
Такой код:
Функция Разность(Конт)
Перем кат,минцена,докцена;
   прихцена=Окр(Конт.ТМЦ.Цена_Прих.Получить(Конт.ДатаДок)*(1+Конт.ТМЦ.СтавкаНДС.Ставка.Получить(Конт.ДатаДок)),2);
   докцена=Окр(?(Конт.Кво*Конт.Коэффициент=0,0,Конт.СуммаСНДС/(Конт.Кво*Конт.Коэффициент)),2);
     Если докцена<прихцена Тогда
       ВсеВыбрано = ?((ДоступАдмина+ДоступБуха)=2,0,ВсеВыбрано);
       Возврат(""+Конт.номерСтроки+"."+Конт.ТМЦ+" имеет цену ниже приходной");
   КонецЕсли;
Возврат(Конт);
КонецФункции
//*************
т.е. функция в любо случае вернет щанчение
далее код:
Процедура Сформировать()
   Таб = СоздатьОбъект("Таблица");
Таб.ВывестиСекцию("Шапка");
ВыбДок=СоздатьОбъект("Документ.РасходнаяНакладная");
ВыбДок.ВыбратьДокументы(ДатаС,ДатаПо);
Пока ВыбДок.ПолучитьДокумент()<>0 Цикл
 Состояние("Проверка "+ВыбДок+" ...");
 Таб.ВывестиСекцию("Проба");
КонецЦикла; Состояние("");

КонецПроцедуры
В результате работы данного скрпта в окне сообщение:
Запр<<?>>.ТМЦ
Переменная не определена (Запр)
Где он или она нашли Запр.ТМЦ?
В таблице в сеции проба только одно поле:
Разность(ВыбДок)
70 bananan
 
08.02.13
18:50
(68) Хоть что-то радует...
71 Mikeware
 
08.02.13
18:53
(70) оно не радует, оно веселит...
72 Eugene_life
 
08.02.13
18:59
Я смотрю, тут работа идет полным ходом :) Напомню, что сегодня пятница, короткий день и все такое. Так что не засиживайтесь допоздна.
73 bananan
 
08.02.13
19:07
(72) Не смешно, после работы на работе, у меня дома работы непочатый край...
74 bananan
 
08.02.13
19:59
И на последок такой вопрос:
Скажем моя функция возвращает Ложь или таблицу значений как такое сделать. И если функция вернула не ложь то показать таблицу значений ну а если вернула ложь - показать сообщение об ошибке
75 Эльниньо
 
08.02.13
21:09
Незабвенной Светой Семененко повеяло.
76 monsterZE
 
08.02.13
22:27
(69) возможно в каком-то поле осталась расшифровка.. Запр.ТМЦ
77 Cthulhu
 
09.02.13
00:17
процедура может быть указана в формуле любого реквизита кроме текста, а функция - не может. а в формуле текстового реквизита - наоборот, функция может быть указана, а процедура - не может.
78 bananan
 
11.02.13
11:51
(76) Спасибо, так и было - осталась расшифорвка...
79 bananan
 
11.02.13
12:24
Вопрос касательно вовращаемого значения функцией...
Я НАписал такой код:
Функция Разность(Конт)
Перем кат,минцена,докцена;
   ТЗ = СоздатьОбъект("ТаблицаЗначений");
   Конт.ВыбратьСтроки();
   Стр = Конт.ПолучитьСтроку();
   прихцена=Окр(Конт.ТМЦ.Цена_Прих.Получить(Конт.ДатаДок)*(1+Конт.ТМЦ.СтавкаНДС.Ставка.Получить(Конт.ДатаДок)),2);
   докцена=Окр(?(Конт.Кво*Конт.Коэффициент=0,0,Конт.СуммаСНДС/(Конт.Кво*Конт.Коэффициент)),2);
     Если докцена<прихцена Тогда
       ВсеВыбрано = ?((ДоступАдмина+ДоступБуха)=2,0,ВсеВыбрано);
       //Возврат(Конт.НомерДок+" "+Конт.номерСтроки+"."+Конт.ТМЦ+" має ціну нижчу за прихідну ");
       ТЗ.НоваяКолонка("ДатаДок", "Дата",,,"Дата", 15);
       ТЗ.НоваяКолонка("Номер", "Строка", 20,,"Номер", 15);
       ТЗ.НоваяКолонка("Товар", "Справочник.ТМЦ",,,,"Товар",,);
       //ТЗ.НоваяКолонка("Документ", "Документ", , , ,"Документ",,);
       ТЗ.НоваяСтрока();
       ТЗ.ДатаДок = Конт.ДатаДок;
       ТЗ.Номер   = Конт.НомерДок;
       ТЗ.Товар   = Конт.ТМЦ;
   КонецЕсли;
   Возврат(ТЗ);
КонецФункции
//*******************************************
Процедура Сформировать()
   Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("Таблица");
   Таб.ВывестиСекцию("Шапка");
   ВыбДок=СоздатьОбъект("Документ.РасходнаяНакладная");
   ВыбДок.ВыбратьДокументы(ДатаС,ДатаПо);
   Пока ВыбДок.ПолучитьДокумент()<>0 Цикл
         Состояние("Перевірка "+ВыбДок+" ...");
       Таб.ВывестиСекцию("Проба");
   КонецЦикла;
     Состояние("Готово!");      
   Таб.Опции(0,0,Таб.ВысотаСекции("Шапка"),0);
   Таб.ТолькоПросмотр(1);
   Таб.Защита(0);
   Таб.Показать("Негаразд","");      
КонецПроцедуры
Так вот, работать он работает - но мягко говоря не совсем так как хотелось...
Т.е. если усовие в функции срабатывает то в ТЗ - добавляется значение и все нормлаьно, но, если значение не срабатывает получаюю:
1. Сообщение об ошибке (Поле агрегатного объекта не обнаружено (ДатаДок))
2. Ну и в самой таблице : Разность(ВыбДок).ДатаДок    
Так вот, надо чтобы ну не знаю как сообщить Таблице что мол не надо выводить ТЗ
Как это сделать?
80 bananan
 
11.02.13
12:25
+(79) Или в данном случае надо применять не Таблицу значений, а что-то другое?
81 bananan
 
11.02.13
12:34
Здесь есть кто живой?
82 ЧеловекДуши
 
11.02.13
12:37
Мы слушаем, ты давай пиши :)
83 bananan
 
11.02.13
12:37
Ну или здесь можно примерно так если количесвто строк в ТЗ не равно 0 тогда показать секцию
84 Wobland
 
11.02.13
12:40
новые колонки до условия заделай, сразу после объявления ТЗ. остальное ни х не понял
85 Wobland
 
11.02.13
12:41
(83) я тебе ни за что не скажу, как у ТЗ узнать количество строк
86 bananan
 
11.02.13
12:41
(82) Рад за вас...
Так вот попробывал проверять количество строк в тпблице значений: выдает ошибку Если ТЗ.КоличествоСтрок()>0 Тогда
Значение не представляет агрегатный объект (КоличествоСтрок)
Хотя далее в коде у меня такая строка (и она работает):
   Сообщить("Количество Строк "+ТЗ.КоличествоСтрок());
Почему в если не проходит?
87 Wobland
 
11.02.13
12:44
(86) потому что ТЗ - не ТЗ
88 bananan
 
11.02.13
12:46
(87) Ты сам понял, что написал?
89 Wobland
 
11.02.13
12:46
(88) конечно
90 bananan
 
11.02.13
12:47
Если серьезно то: код где я обрпщаюсь к количеству строк в ТЗ такой:
   Пока ВыбДок.ПолучитьДокумент()<>0 Цикл
         Состояние("Перевірка "+ВыбДок+" ...");
         Сообщить("Количество Строк "+ТЗ.КоличествоСтрок());
         Кол = ТЗ.КоличествоСтрок();
       Если Кол>0 Тогда
             Таб.ВывестиСекцию("Проба");
         КонецЕсли;
   КонецЦикла;
     Состояние("Готово!");      
   Таб.Опции(0,0,Таб.ВысотаСекции("Шапка"),0);
   Таб.ТолькоПросмотр(1);
   Таб.Защита(0);
   Таб.Показать("Негаразд","");      
   Сообщить("Количество Строк "+ТЗ.КоличествоСтрок());
так вот в цикле Тз.КоличествоСтрок() не проходит ошибку выдает
а вот в последней строке в процедуре - все нормально. почему?
91 Privalov
 
11.02.13
12:47
(88) А ты не понял?
92 bananan
 
11.02.13
12:48
(89) Рад за тебя, пожплуйста скажи так чтобы и  я понял...
93 bananan
 
11.02.13
12:48
(88) Ребята, я здесь никогда не шучу, если бы понял - то и не спрашивал бы
94 Wobland
 
11.02.13
12:49
(92) 1) переменная ТЗ не является таблицей значений
2) ты врёшь
95 Privalov
 
11.02.13
12:50
(94) +100
96 Privalov
 
11.02.13
12:50
(93) А, так это не шутки?
97 bananan
 
11.02.13
12:51
(94) 2 - не вру; 1 вот весь код:
Перем ВыбНачПериода, ВыбКонПериода, ТЗ;
//*******************************************
Функция Разность(Конт)
Перем кат,минцена,докцена;
   ТЗ = СоздатьОбъект("ТаблицаЗначений");
   Конт.ВыбратьСтроки();
   Стр = Конт.ПолучитьСтроку();
   прихцена=Окр(Конт.ТМЦ.Цена_Прих.Получить(Конт.ДатаДок)*(1+Конт.ТМЦ.СтавкаНДС.Ставка.Получить(Конт.ДатаДок)),2);
   докцена=Окр(?(Конт.Кво*Конт.Коэффициент=0,0,Конт.СуммаСНДС/(Конт.Кво*Конт.Коэффициент)),2);
     Если докцена<прихцена Тогда
       ВсеВыбрано = ?((ДоступАдмина+ДоступБуха)=2,0,ВсеВыбрано);
       //Возврат(Конт.НомерДок+" "+Конт.номерСтроки+"."+Конт.ТМЦ+" має ціну нижчу за прихідну ");
       ТЗ.НоваяКолонка("ДатаДок", "Дата",,,"Дата", 15);
       ТЗ.НоваяКолонка("Номер", "Строка", 20,,"Номер", 15);
       ТЗ.НоваяКолонка("Товар", "Справочник.ТМЦ",,,,"Товар",,);
       //ТЗ.НоваяКолонка("Документ", "Документ", , , ,"Документ",,);
       ТЗ.НоваяСтрока();
       ТЗ.ДатаДок = Конт.ДатаДок;
       ТЗ.Номер   = Конт.НомерДок;
       ТЗ.Товар   = Конт.ТМЦ;
   КонецЕсли;
   Возврат(ТЗ);
КонецФункции
//*******************************************
Процедура Сформировать()
   Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("Таблица");
   Таб.ВывестиСекцию("Шапка");
   ВыбДок=СоздатьОбъект("Документ.РасходнаяНакладная");
   ВыбДок.ВыбратьДокументы(ДатаС,ДатаПо);
   Пока ВыбДок.ПолучитьДокумент()<>0 Цикл
         Состояние("Перевірка "+ВыбДок+" ...");
         Сообщить("Количество Строк "+ТЗ.КоличествоСтрок());
         Кол = ТЗ.КоличествоСтрок();
       Если Кол>0 Тогда
             Таб.ВывестиСекцию("Проба");
         КонецЕсли;
   КонецЦикла;
     Состояние("Готово!");      
   Таб.Опции(0,0,Таб.ВысотаСекции("Шапка"),0);
   Таб.ТолькоПросмотр(1);
   Таб.Защита(0);
   Таб.Показать("Негаразд","");      
   Сообщить("Количество Строк "+ТЗ.КоличествоСтрок());
КонецПроцедуры
т.е Тз переменная, которой потом присваивается ТаблицаЗначений
98 Privalov
 
11.02.13
12:52
Про отладчик говорить?
99 Wobland
 
11.02.13
12:53
(97) на кой нам тут твоя разность? ТЗ - не ТЗ в Сформировать(). можешь начинать пытаться меня переубедить
100 Wobland
 
11.02.13
12:53
СТО!
101 bananan
 
11.02.13
12:53
(98) А разве отладчик с внешними формами работает?
102 Privalov
 
11.02.13
12:53
И ты врешь!!
103 Privalov
 
11.02.13
12:53
(101) 6ля.
104 Privalov
 
11.02.13
12:54
(101) А вот попробовать не судьба?
105 ЧеловекДуши
 
11.02.13
12:54
(101)Да :)
106 Wobland
 
11.02.13
12:54
(104) ты новенький в нашем фан-клубе? не судьба
107 sapphire
 
11.02.13
12:55
(97) Глазки устали?
//*******************************************

Процедура Сформировать()
   Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("Таблица");
   Таб.ВывестиСекцию("Шапка");
   ВыбДок=СоздатьОбъект("Документ.РасходнаяНакладная");
   ВыбДок.ВыбратьДокументы(ДатаС,ДатаПо);
   Пока ВыбДок.ПолучитьДокумент()<>0 Цикл
         Состояние("Перевірка "+ВыбДок+" ...");
         Сообщить("Количество Строк "+ТЗ.КоличествоСтрок()); /// ВОТ ЗДЕСЬ УЖЕ ТЗ. А Вызов твоей мега функции по документу за тебя Пушкин писать будет?
         Кол = ТЗ.КоличествоСтрок();
       Если Кол>0 Тогда
             Таб.ВывестиСекцию("Проба");
         КонецЕсли;
   КонецЦикла;
     Состояние("Готово!");      
   Таб.Опции(0,0,Таб.ВысотаСекции("Шапка"),0);
   Таб.ТолькоПросмотр(1);
   Таб.Защита(0);
   Таб.Показать("Негаразд","");      
   Сообщить("Количество Строк "+ТЗ.КоличествоСтрок());
КонецПроцедуры
108 bananan
 
11.02.13
12:55
(99) Не понимаю почему в Процедуре Сформировать() Тз в цикле - не ТЗ, а в последней строке процедуре - Тз - это Тз т все нормально!!!
109 ЧеловекДуши
 
11.02.13
12:55
+ Еще как работает, куда приятней работать с обработками в отладчике, нежели с КФ файлом :)
110 sapphire
 
11.02.13
12:55
(108) Недума потому что
111 Wobland
 
11.02.13
12:55
(108) покажи место, где ТЗ становится таблицей
112 ЧеловекДуши
 
11.02.13
12:55
(108)Где ты вызываешь функцию "Функция Разность(Конт)" ????
113 ЧеловекДуши
 
11.02.13
12:56
(111)Его попросту нет :)
114 sapphire
 
11.02.13
12:57
// КОРМИМ ТРОЛЛЯ С РУКИ
//
Перем ВыбНачПериода, ВыбКонПериода, ТЗ;
//*******************************************

Функция Разность(Конт)
Перем кат,минцена,докцена;
   ТЗ = СоздатьОбъект("ТаблицаЗначений");
   Конт.ВыбратьСтроки();
   Стр = Конт.ПолучитьСтроку();
   прихцена=Окр(Конт.ТМЦ.Цена_Прих.Получить(Конт.ДатаДок)*(1+Конт.ТМЦ.СтавкаНДС.Ставка.Получить(Конт.ДатаДок)),2);
   докцена=Окр(?(Конт.Кво*Конт.Коэффициент=0,0,Конт.СуммаСНДС/(Конт.Кво*Конт.Коэффициент)),2);
      Если докцена<прихцена Тогда
       ВсеВыбрано = ?((ДоступАдмина+ДоступБуха)=2,0,ВсеВыбрано);
       //Возврат(Конт.НомерДок+" "+Конт.номерСтроки+"."+Конт.ТМЦ+" має ціну нижчу за прихідну ");

       ТЗ.НоваяКолонка("ДатаДок", "Дата",,,"Дата", 15);
       ТЗ.НоваяКолонка("Номер", "Строка", 20,,"Номер", 15);
       ТЗ.НоваяКолонка("Товар", "Справочник.ТМЦ",,,,"Товар",,);
       //ТЗ.НоваяКолонка("Документ", "Документ", , , ,"Документ",,);

       ТЗ.НоваяСтрока();
       ТЗ.ДатаДок = Конт.ДатаДок;
       ТЗ.Номер   = Конт.НомерДок;
       ТЗ.Товар   = Конт.ТМЦ;
   КонецЕсли;
   Возврат(ТЗ);
КонецФункции
//*******************************************

Процедура Сформировать()
   Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("Таблица");
   Таб.ВывестиСекцию("Шапка");
   ВыбДок=СоздатьОбъект("Документ.РасходнаяНакладная");
   ВыбДок.ВыбратьДокументы(ДатаС,ДатаПо);
   Пока ВыбДок.ПолучитьДокумент()<>0 Цикл
         Состояние("Перевірка "+ВыбДок+" ...");
         ТЗ=Разность(ВыбДок);
         Сообщить("Количество Строк "+ТЗ.КоличествоСтрок());
         Кол = ТЗ.КоличествоСтрок();
       Если Кол>0 Тогда
             Таб.ВывестиСекцию("Проба");
         КонецЕсли;
   КонецЦикла;
     Состояние("Готово!");      
   Таб.Опции(0,0,Таб.ВысотаСекции("Шапка"),0);
   Таб.ТолькоПросмотр(1);
   Таб.Защита(0);
   Таб.Показать("Негаразд","");      
   Сообщить("Количество Строк "+ТЗ.КоличествоСтрок());
КонецПроцедуры
115 Mikeware
 
11.02.13
12:57
(114) приручить решил?
а потом натравить? :-)
116 ЧеловекДуши
 
11.02.13
12:57
(114)Ну вот, все испортил :)
117 Wobland
 
11.02.13
12:58
похоже, сейчас начнёт легчать. повторюсь: создание колонок следует делать сразу после объявления ТЗ
118 bananan
 
11.02.13
12:58
(107) Спасибо!!!
119 bananan
 
11.02.13
12:59
(117) Понял, учту и сделаю в окончательной веосии
120 Wobland
 
11.02.13
13:00
(119) надолго не пропадай ;)
121 Privalov
 
11.02.13
13:01
(120) +100 ))))
122 Mikeware
 
11.02.13
13:07
(116) не...
"все еще только начинается..."
шэф дает бананану задачу... бананан никуа не может, и бежит с этой задачей в мизду. в мизде эту задачу,  сжалившись, решает какой-нибудь миздюк... шеф думает, что бананан решил сам, и дает задачу чуть сложнее.... цикл повторяется
123 bananan
 
11.02.13
13:12
(122) Твоими устами бы ...
А вот мне надо провереять несколько видов документов (РасходнаяНакладная, РасходнаяНакладнаяН и РасходнаяНакладнаяВ), так что для писать отдельный код в йункции?
124 Mikeware
 
11.02.13
13:16
(123) как хочещь...
125 sapphire
 
11.02.13
13:17
(124) Сегодне еще не напоминале ему про существование штатных отчетов и обработков?
126 Mikeware
 
11.02.13
13:19
(125) а смысл?
127 sapphire
 
11.02.13
13:20
(126) Вдруг научится :)
128 bananan
 
11.02.13
13:20
(124) Ну я от тебя другого ответа и не ожидал...
Еще. В документе может быть не один товар с неправильной ценой, значит в функцию надо добавить усовершенстование...?
129 sapphire
 
11.02.13
13:21
(126) Следующая тема, наверное, будет как это сделать прямым запросом :)
130 bananan
 
11.02.13
13:21
(127) А из того кода что я здесь показал - 99% код взятый на форуме?!!
131 bananan
 
11.02.13
13:22
(129) Об этом я уже думал, если даный код будет слишком медленно работать - буду писать прямой запрос
132 Wobland
 
11.02.13
13:23
(131) НЕЕЕТТ!!!
133 Mikeware
 
11.02.13
13:23
(127) он вопросы по клюшкам начал задавать в 2008. И до сих пор не научился. смысл напоминать еще раз?
134 sapphire
 
11.02.13
13:24
// КОРМИМ ТРОЛЛЯ С РУКИ. 2 серия

//

Перем ВыбНачПериода, ВыбКонПериода, ТЗ;
//*******************************************


Функция Разность(Конт)
Перем кат,минцена,докцена;
   ТЗ = СоздатьОбъект("ТаблицаЗначений");
   ТЗ.НоваяКолонка("ДатаДок", "Дата",,,"Дата", 15);
   ТЗ.НоваяКолонка("Номер", "Строка", 20,,"Номер", 15);
   ТЗ.НоваяКолонка("Товар", "Справочник.ТМЦ",,,,"Товар",,);
       //ТЗ.НоваяКолонка("Документ", "Документ", , , ,"Документ",,);

   Конт.ВыбратьСтроки();
   
   Пока Конт.ПолучитьСтроку()=1 Цикл
       
       прихцена=Окр(Конт.ТМЦ.Цена_Прих.Получить(Конт.ДатаДок)*(1+Конт.ТМЦ.СтавкаНДС.Ставка.Получить(Конт.ДатаДок)),2);
      докцена=Окр(?(Конт.Кво*Конт.Коэффициент=0,0,Конт.СуммаСНДС/(Конт.Кво*Конт.Коэффициент)),2);
      Если докцена<прихцена Тогда
          ВсеВыбрано = ?((ДоступАдмина+ДоступБуха)=2,0,ВсеВыбрано);
       //Возврат(Конт.НомерДок+" "+Конт.номерСтроки+"."+Конт.ТМЦ+" має ціну нижчу за прихідну ");
 
       ТЗ.НоваяСтрока();
       ТЗ.ДатаДок = Конт.ДатаДок;
       ТЗ.Номер   = Конт.НомерДок;
       ТЗ.Товар   = Конт.ТМЦ;
       КонецЕсли;
   КонецЦикла;
   Возврат(ТЗ);
КонецФункции
//*******************************************


Процедура Сформировать()
   Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("Таблица");
   Таб.ВывестиСекцию("Шапка");
   ВыбДок=СоздатьОбъект("Документ.РасходнаяНакладная");
   ВыбДок.ВыбратьДокументы(ДатаС,ДатаПо);
   Пока ВыбДок.ПолучитьДокумент()<>0 Цикл
         Состояние("Перевірка "+ВыбДок+" ...");
         ТЗ=Разность(ВыбДок);
         Сообщить("Количество Строк "+ТЗ.КоличествоСтрок());
         Кол = ТЗ.КоличествоСтрок();
       Если Кол>0 Тогда
             Таб.ВывестиСекцию("Проба");
         КонецЕсли;
   КонецЦикла;
     Состояние("Готово!");      
   Таб.Опции(0,0,Таб.ВысотаСекции("Шапка"),0);
   Таб.ТолькоПросмотр(1);
   Таб.Защита(0);
   Таб.Показать("Негаразд","");      
   Сообщить("Количество Строк "+ТЗ.КоличествоСтрок());
КонецПроцедуры
135 sapphire
 
11.02.13
13:25
(132) Поздняк метаться :)
136 sapphire
 
11.02.13
13:26
(133) А может это не он, а такой передаваемый по рукам ник и место работы? :)
137 sapphire
 
11.02.13
13:27
(133)+ (136) , типа если шеф попросит че нить сваять открой форум напиши - ответят :)
138 sapphire
 
11.02.13
13:34
Чегой-то ТС затих... Никак (134) ушел проверять. Жалко.
Как пить дать - вылезеть и скажет де медленно дюже...
139 Wobland
 
11.02.13
13:36
а на хрена собирать целую ТЗ для проверки на Количество()>0? //я не вчитывался
140 sapphire
 
11.02.13
13:41
(139) Тсс... а то следующих серий не дождемся :)
141 sapphire
 
11.02.13
13:43
(139) он в (128) просил "в функцию надо добавить усовершенстование.."
.. и не просил менять вывод в табличный документ :)
142 bananan
 
11.02.13
13:46
(141) Усовершенствование надо делать и в самой функцие и в процедуре Сообщить (если к-во строк больше 1 тогда...)
143 sapphire
 
11.02.13
13:48
(142) И чо? Сделал?
144 sapphire
 
11.02.13
13:49
(142) О как всё запущено...
Сделай, пожалуйста усовершенствование в процедуре встроенного языка Сообщить (Message) :))))
145 sapphire
 
11.02.13
13:51
// КОРМИМ ТРОЛЛЯ С РУКИ. 3 серия


//


Перем ВыбНачПериода, ВыбКонПериода, ТЗ;
//*******************************************



Функция Разность(Конт)
Перем кат,минцена,докцена;
   ТЗ = СоздатьОбъект("ТаблицаЗначений");
   ТЗ.НоваяКолонка("ДатаДок", "Дата",,,"Дата", 15);
   ТЗ.НоваяКолонка("Номер", "Строка", 20,,"Номер", 15);
   ТЗ.НоваяКолонка("Товар", "Справочник.ТМЦ",,,,"Товар",,);
       //ТЗ.НоваяКолонка("Документ", "Документ", , , ,"Документ",,);


   Конт.ВыбратьСтроки();
   
   Пока Конт.ПолучитьСтроку()=1 Цикл
       
       прихцена=Окр(Конт.ТМЦ.Цена_Прих.Получить(Конт.ДатаДок)*(1+Конт.ТМЦ.СтавкаНДС.Ставка.Получить(Конт.ДатаДок)),2);
      докцена=Окр(?(Конт.Кво*Конт.Коэффициент=0,0,Конт.СуммаСНДС/(Конт.Кво*Конт.Коэффициент)),2);
      Если докцена<прихцена Тогда
           ВсеВыбрано = ?((ДоступАдмина+ДоступБуха)=2,0,ВсеВыбрано);
       //Возврат(Конт.НомерДок+" "+Конт.номерСтроки+"."+Конт.ТМЦ+" має ціну нижчу за прихідну ");

 
       ТЗ.НоваяСтрока();
       ТЗ.ДатаДок = Конт.ДатаДок;
       ТЗ.Номер   = Конт.НомерДок;
       ТЗ.Товар   = Конт.ТМЦ;
       КонецЕсли;
   КонецЦикла;
   Возврат(ТЗ);
КонецФункции
//*******************************************



Процедура Сформировать()
   Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("Таблица");
   Таб.ВывестиСекцию("Шапка");
   ВыбДок=СоздатьОбъект("Документ.РасходнаяНакладная");
   ВыбДок.ВыбратьДокументы(ДатаС,ДатаПо);
   Пока ВыбДок.ПолучитьДокумент()<>0 Цикл
         Состояние("Перевірка "+ВыбДок+" ...");
         ТЗ=Разность(ВыбДок);
         Сообщить("Количество Строк "+ТЗ.КоличествоСтрок());
           ТЗ.ВыбрaтьСтроки();
           Пoка ТЗ.ПолучитьCтрoку()=1 Цикл  
//          Кол = ТЗ.КоличествоСтрок();
//        Если Кол>0 Тогда
             Таб.ВывестиСекцию("Проба");
//          КонецЕсли;
           КонецЦикла;  
   КонецЦикла;
     Состояние("Готово!");      
   Таб.Опции(0,0,Таб.ВысотаСекции("Шапка"),0);
   Таб.ТолькоПросмотр(1);
   Таб.Защита(0);
   Таб.Показать("Негаразд","");      
   Сообщить("Количество Строк "+ТЗ.КоличествоСтрок());
КонецПроцедуры
146 bananan
 
11.02.13
13:52
(145) Спасибо! О цикле пока получить строку я что-то и не подумал
147 Privalov
 
11.02.13
14:02
"я что-то и не подумал" - ключевые слова!!
148 bananan
 
11.02.13
14:02
Врт теперь я в упор не понимаю в чем ошибка.
Код такой:
   Пока ВыбДок.ПолучитьДокумент()<>0 Цикл
         Состояние("Перевірка "+ВыбДок+" ...");            
         ТЗ=Разность(ВыбДок);            
         ТЗ.ВыбрaтьСтроки();
         Пoка ТЗ.ПолучитьCтрoку()=1 Цикл
             Таб.ВывестиСекцию("Проба");
         КонецЦикла;
   КонецЦикла;
     Состояние("Готово!");    
Выдает ошибку:
 Пoка <<?>>ТЗ.ПолучитьCтрoку()=1 Цикл
{\\server12\vpktest$\ExtForms\БитіДокументи.ert(36)}: Неопознанный операто
149 chelentano
 
11.02.13
14:03
сдаётся мне, что год рождения у ТС указан неверно
150 bananan
 
11.02.13
14:04
+(148) в чем была ошибка - не знаю написал по новой слово Пока и заработало
151 Wobland
 
11.02.13
14:04
эти две поки даже тут разным цветом
152 Privalov
 
11.02.13
14:08
(149) +100500
153 sapphire
 
11.02.13
14:08
(151) Ты знал, ты знал :)))))))))))))))))))
154 bananan
 
11.02.13
14:08
(151) Да уже увидел... Но, код работает, но все-равно выдает не совсем то:
Аналіз документів за вибраний період                        
                       
                       
                       
                       
                       
                       
                       
 .  .                        
 .  .                        
 .  .                        
 .  .                        
 .  .                        
 .  .                        
 .  .                        
 .  .                        
 .  .                        
 .  .                        
 .  .                        
 .  .                        
03.12.12        АТ-0037210    Шам-ни "Особливі"марин. цілі с/б 314 мл 12шт Чемпіон     має ціну нижчу за прихідну
155 sapphire
 
11.02.13
14:09
(154) Чего?
156 bananan
 
11.02.13
14:09
+(154) Те перед документом в которм есть ошибка он почему-то выдал пустые строки и дальше они еще будут не раз...
157 bananan
 
11.02.13
14:10
+(156) еще вопрос: как написать чтобы когда клацаешь мышкой по номеру докемента - этот доукумент открывался бы?
158 Wobland
 
11.02.13
14:11
(157) надо написать расшифровка. но смутно помнится мне, что в семёрке это сильно по-другому
159 sapphire
 
11.02.13
14:12
(157) В поле расшифровка на макете указать имя переменной, в коей док хранится
160 Mikeware
 
11.02.13
14:12
(157) это шаманство.
и это шаманство описано в документации :-)))
161 Wobland
 
11.02.13
14:12
да, точно, у меня в расшифроке в свойствах так и указано
162 sapphire
 
11.02.13
14:14
// КОРМИМ ТРОЛЛЯ С РУКИ. 4 серия



//



Перем ВыбНачПериода, ВыбКонПериода, ТЗ;
//*******************************************




Функция Разность(Конт,Таб)
Перем кат,минцена,докцена;
   ТЗ = СоздатьОбъект("ТаблицаЗначений");
   ТЗ.НоваяКолонка("ДатаДок", "Дата",,,"Дата", 15);
   ТЗ.НоваяКолонка("Номер", "Строка", 20,,"Номер", 15);
   ТЗ.НоваяКолонка("Товар", "Справочник.ТМЦ",,,,"Товар",,);
       //ТЗ.НоваяКолонка("Документ", "Документ", , , ,"Документ",,);



   Конт.ВыбратьСтроки();
   
   Пока Конт.ПолучитьСтроку()=1 Цикл
       
       прихцена=Окр(Конт.ТМЦ.Цена_Прих.Получить(Конт.ДатаДок)*(1+Конт.ТМЦ.СтавкаНДС.Ставка.Получить(Конт.ДатаДок)),2);
      докцена=Окр(?(Конт.Кво*Конт.Коэффициент=0,0,Конт.СуммаСНДС/(Конт.Кво*Конт.Коэффициент)),2);
      Если докцена<прихцена Тогда
           ВсеВыбрано = ?((ДоступАдмина+ДоступБуха)=2,0,ВсеВыбрано);
       //Возврат(Конт.НомерДок+" "+Конт.номерСтроки+"."+Конт.ТМЦ+" має ціну нижчу за прихідну ");



       ТЗ.НоваяСтрока();
       ТЗ.ДатаДок = Конт.ДатаДок;
       ТЗ.Номер   = Конт.НомерДок;
       ТЗ.Товар   = Конт.ТМЦ;
       Таб.ВывестиСекцию("Проба");  
       КонецЕсли;
   КонецЦикла;
   Возврат(ТЗ);
КонецФункции
//*******************************************




Процедура Сформировать()
   Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("Таблица");
   Таб.ВывестиСекцию("Шапка");
   ВыбДок=СоздатьОбъект("Документ.РасходнаяНакладная");
   ВыбДок.ВыбратьДокументы(ДатаС,ДатаПо);
   Пока ВыбДок.ПолучитьДокумент()<>0 Цикл
         Состояние("Перевірка "+ВыбДок+" ...");
         ТЗ=Разность(ВыбДок);
   КонецЦикла;
   Состояние("Готово!");      
   Таб.Опции(0,0,Таб.ВысотаСекции("Шапка"),0);
   Таб.ТолькоПросмотр(1);
   Таб.Защита(0);
   Таб.Показать("Негаразд","");      
   Сообщить("Количество Строк "+ТЗ.КоличествоСтрок());
КонецПроцедуры
163 bananan
 
11.02.13
14:21
(161) В расшифровке написал ТЗ.Номер, все-равно документ не открывается, плюс почему-то есть пустые строки:
Аналіз документів за вибраний період                        
                       
                       
                       
                       
                       
                       
                       
 .  .                        
 .  .                        
 .  .                        
 .  .                        
 .  .                        
 .  .                        
 .  .                        
 .  .                        
 .  .                        
 .  .                        
 .  .                        
 .  .                        
03.12.12        АТ-0037210    Шам-ни "Особливі"марин. цілі с/б 314 мл 12шт Чемпіон     має ціну нижчу за прихідну        
03.12.12        АТ-0037211    2*100 ф/п "Magik" чорний 24шт     має ціну нижчу за прихідну        
 .  .                        
 .  .                        
 .  .                        
 .  .                        
 .  .                        
 .  .                        
 .  .                        
03.12.12        АТ-0037219    Шам-ни "Особливі"марин. цілі с/б 580 мл 12шт Чемпіон     має ціну нижчу за прихідну        
 .  .                        
И еще, таблица выводиться на экран как таблица в режиме редактирования, а не как "лист" бумаги...
164 chelentano
 
11.02.13
14:23
с нетерпением жду момента, когда ТС начнёт осваивать снеговика
165 bananan
 
11.02.13
14:25
(162) Добавил код:
   Таб.ТолькоПросмотр(1);
   Таб.Опции(0,0,Таб.ВысотаСекции("Шапка"),0);
   Таб.ТолькоПросмотр(1);
   Таб.Защита(0);

Теперь таблицу показывает так как надо, но документ не открывается и остались пустые строки!
166 Privalov
 
11.02.13
14:26
Прямо как сводки с полей )))))
167 bananan
 
11.02.13
14:27
(166) Если я чего-то не понимаю или не знаю; - я спрашиваю
168 sapphire
 
11.02.13
14:28
Мы тут телепатим, что же у него в секции "Проба" и куда он засунул расшифровку документа, и главное, как назвал :)
169 Mikeware
 
11.02.13
14:29
(166) скорее, как поле с водки...
170 bananan
 
11.02.13
14:31
(168) Секция проба:
ТЗ.ДатаДок        ТЗ.Номер    ТЗ.Товар    ТЗ.Ошибка
(все выражения) Для поля ТЗ.Номер расшировка: ТЗ.Номер
171 DalexLad
 
11.02.13
14:32
ТС не томи душу, как там ситуация в полях?
172 Mikeware
 
11.02.13
14:32
(171) бухают...
173 Wobland
 
11.02.13
14:33
(167) крайний раз ты спрашивал десять постов назад. а пока сводки
174 bananan
 
11.02.13
14:39
(173) я ответил на замечание (168)
А вопрос опят же почему документ не открывается?
175 Wobland
 
11.02.13
14:40
(174) не документ, а номер
176 Mikeware
 
11.02.13
14:43
(175) он не понимает разницу.
177 sapphire
 
11.02.13
14:49
(170) Ну ты же понимаешь, да, что макет я уже отсериализировать не смогу :))))
178 Privalov
 
11.02.13
14:50
Что-то затих, то ли получается, то ли совсем стух. Ты там давай, хоть голос подавай, а то народ волнуется.
179 sapphire
 
11.02.13
14:50
(174) Потому что ты говоришь несчастной программе, что по щелчку на номер документа она должна вякнуть тебе его Номер.
Но, не сам документ {место нецензурной брани с волосатым мужиком на б...ть}
180 bananan
 
11.02.13
14:52
(175) Спасибо...
Но... Документ все-равно не открывается... может другие параметры таблицы нужны?
181 Wobland
 
11.02.13
14:52
(179) держу пари, пока не сказать, где написать, до него не дойдёт. да и тогда не дойдёт
182 Wobland
 
11.02.13
14:52
(180) доходит, не?
183 sapphire
 
11.02.13
14:52
бедные клюшки, им, наверное чегтовски обидна :)
184 sapphire
 
11.02.13
14:53
(180) Просто якорь :)
185 bananan
 
11.02.13
14:53
+(180) В код добавил:    ТЗ.НоваяКолонка("Документ", "Документ",,,,"Документ",,); Расшифровка поля ТЗ.Номер: ТЗ.Документ
186 sapphire
 
11.02.13
14:54
(185) Уже лучше.
187 bananan
 
11.02.13
14:54
(182) Не доходит
188 bananan
 
11.02.13
14:54
(186) Документ не открывается
189 sapphire
 
11.02.13
14:54
(185) Добавить тупо колонку аще мало егда заполняй ея
190 sapphire
 
11.02.13
14:55
(188) см (189)
191 bananan
 
11.02.13
14:56
(189) Добаувил колонку Документ куда вывожу ТЗ.Документ с расшифровкой Тз.Документ (в поле этом ничепго не выводиться и документ не открываетя)
192 Wobland
 
11.02.13
14:58
(191) и чо?
193 sapphire
 
11.02.13
14:59
(191) Покажи текущий код, что ты там наваял :)
194 bananan
 
11.02.13
15:00
(192) Читай (191) документ НЕ ОТКРЫВАЕТСЯ
195 Wobland
 
11.02.13
15:00
(194) прочитал. не один раз. и чо?
196 bananan
 
11.02.13
15:01
(193)
Перем ВыбНачПериода, ВыбКонПериода, ТЗ;
//*******************************************
Функция Разность(Конт)
Перем кат,минцена,докцена;
   ТЗ = СоздатьОбъект("ТаблицаЗначений");
   ТЗ.НоваяКолонка("ДатаДок", "Дата",,,"Дата", 15);
   ТЗ.НоваяКолонка("Документ", "Документ",,,,"Документ",,);
   ТЗ.НоваяКолонка("Номер", "Строка", 20,,"Номер", 15);
   ТЗ.НоваяКолонка("Товар", "Справочник.ТМЦ",,,,"Товар",,);
   ТЗ.НоваяКолонка("Ошибка", "Строка",,,,"Ошибка",,);
   ТЗ.НоваяСтрока();    
   Конт.ВыбратьСтроки();
   Стр = Конт.ПолучитьСтроку();
   прихцена=Окр(Конт.ТМЦ.Цена_Прих.Получить(Конт.ДатаДок)*(1+Конт.ТМЦ.СтавкаНДС.Ставка.Получить(Конт.ДатаДок)),2);
   докцена=Окр(?(Конт.Кво*Конт.Коэффициент=0,0,Конт.СуммаСНДС/(Конт.Кво*Конт.Коэффициент)),2);
     Если докцена<прихцена Тогда
       ВсеВыбрано = ?((ДоступАдмина+ДоступБуха)=2,0,ВсеВыбрано);
       //Возврат(Конт.НомерДок+" "+Конт.номерСтроки+"."+Конт.ТМЦ+" має ціну нижчу за прихідну ");
       ТЗ.ДатаДок = Конт.ДатаДок;
       ТЗ.Номер   = Конт.НомерДок;
       ТЗ.Товар   = Конт.ТМЦ;                  
       ТЗ.Ошибка  = " має ціну нижчу за прихідну ";
   КонецЕсли;
   Возврат(ТЗ);
КонецФункции
//*******************************************
Процедура Сформировать()
   Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("Таблица");
   Таб.ВывестиСекцию("Шапка");
   ВыбДок=СоздатьОбъект("Документ.РасходнаяНакладная");
   ВыбДок.ВыбратьДокументы(ДатаС,ДатаПо);
   Пока ВыбДок.ПолучитьДокумент()<>0 Цикл
         Состояние("Перевірка "+ВыбДок+" ...");            
         ТЗ=Разность(ВыбДок);            
         Если ТЗ.КоличествоСтрок()>0 Тогда
             Таб.ВывестиСекцию("Проба");
         КонецЕсли;
   КонецЦикла;
     Состояние("Готово!");      
   Таб.ТолькоПросмотр(1);
   Таб.Опции(0,0,Таб.ВысотаСекции("Шапка"),0);
   Таб.ТолькоПросмотр(1);
   Таб.Защита(0);
   Таб.Показать("Негаразд","");      
КонецПроцедуры
197 bananan
 
11.02.13
15:01
(195) Почему документ не открывается (расшифровку написал нужную вроде)
198 Wobland
 
11.02.13
15:01
(196) негаразд пишется так: "не горазд"
199 Mikeware
 
11.02.13
15:03
(184) Зачем так грубо отзываться о якорях?
200 bananan
 
11.02.13
15:03
(198) Я смотрю ты украинский знаэш лучше чем 1С
201 Wobland
 
11.02.13
15:04
(200) это только кажется
202 HeroShima
 
11.02.13
15:05
это перебор...
203 DalexLad
 
11.02.13
15:06
(196) Колонку ты добавил, а кто ее заполнять будет
204 Ёпрст
 
11.02.13
15:08
(196)

ТЗ.НоваяСтрока();    
ТЗ.Документ = Конт.ТекущийДокумент();
205 ЧеловекДуши
 
11.02.13
15:08
(200)Вот тут "Разность(Конт)" у тебя вообще нет цикла, что ты хочешь? :)
206 bananan
 
11.02.13
15:08
Я думал он начал пустые строки выводить и-за цикла, потому цикл убрал и написал условие количество строк больше 0, но пустые строки он все-равно выводит - в чем проблема
и еще как указать что если значение не помещается в поле: то его значение разбить на несколько строк?
207 sapphire
 
11.02.13
15:08
// КОРМИМ ТРОЛЛЯ С РУКИ. 4 серия
Перем ВыбНачПериода, ВыбКонПериода, ТЗ;
//*******************************************

Функция Разность(Конт)
Перем кат,минцена,докцена;
   ТЗ = СоздатьОбъект("ТаблицаЗначений");
   ТЗ.НоваяКолонка("ДатаДок", "Дата",,,"Дата", 15);
   ТЗ.НоваяКолонка("Документ", "Документ",,,,"Документ",,);
   ТЗ.НоваяКолонка("Номер", "Строка", 20,,"Номер", 15);
   ТЗ.НоваяКолонка("Товар", "Справочник.ТМЦ",,,,"Товар",,);
   ТЗ.НоваяКолонка("Ошибка", "Строка",,,,"Ошибка",,);
   ТЗ.НоваяСтрока();    
   Конт.ВыбратьСтроки();
   Стр = Конт.ПолучитьСтроку();
   прихцена=Окр(Конт.ТМЦ.Цена_Прих.Получить(Конт.ДатаДок)*(1+Конт.ТМЦ.СтавкаНДС.Ставка.Получить(Конт.ДатаДок)),2);
   докцена=Окр(?(Конт.Кво*Конт.Коэффициент=0,0,Конт.СуммаСНДС/(Конт.Кво*Конт.Коэффициент)),2);
      Если докцена<прихцена Тогда
       ВсеВыбрано = ?((ДоступАдмина+ДоступБуха)=2,0,ВсеВыбрано);
       //Возврат(Конт.НомерДок+" "+Конт.номерСтроки+"."+Конт.ТМЦ+" має ціну нижчу за прихідну ");

       ТЗ.ДатаДок = Конт.ДатаДок;
       ТЗ.Номер   = Конт.НомерДок;
       ТЗ.Товар   = Конт.ТМЦ;                  
       ТЗ.Документ= Конт.ТекущийДокумент();
       ТЗ.Ошибка  = " має ціну нижчу за прихідну ";
   КонецЕсли;
   Возврат(ТЗ);
КонецФункции
//*******************************************

Процедура Сформировать()
   Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("Таблица");
   Таб.ВывестиСекцию("Шапка");
   ВыбДок=СоздатьОбъект("Документ.РасходнаяНакладная");
   ВыбДок.ВыбратьДокументы(ДатаС,ДатаПо);
   Пока ВыбДок.ПолучитьДокумент()<>0 Цикл
         Состояние("Перевірка "+ВыбДок+" ...");            
         ТЗ=Разность(ВыбДок);            
         Если ТЗ.КоличествоСтрок()>0 Тогда
             Таб.ВывестиСекцию("Проба");
         КонецЕсли;
   КонецЦикла;
     Состояние("Готово!");      
   Таб.ТолькоПросмотр(1);
   Таб.Опции(0,0,Таб.ВысотаСекции("Шапка"),0);
   Таб.ТолькоПросмотр(1);
   Таб.Защита(0);
   Таб.Показать("Негаразд","");      
КонецПроцедуры
208 sapphire
 
11.02.13
15:09
(204) Обогнал таки :)
209 bananan
 
11.02.13
15:09
(196) Спасибо
210 ЧеловекДуши
 
11.02.13
15:09
+ ВыбДок.ТекущийДокумент() - Пиши так :)
211 ЧеловекДуши
 
11.02.13
15:10
(209) Сам себе спасибо? :)
212 DalexLad
 
11.02.13
15:12
Я думаю это спасибо 203, 204, 207
213 bananan
 
11.02.13
15:12
+(209) чего-то не то...
вот мой код:
Перем ВыбНачПериода, ВыбКонПериода, ТЗ;
//*******************************************
Функция Разность(Конт)
Перем кат,минцена,докцена;
   ТЗ = СоздатьОбъект("ТаблицаЗначений");
   ТЗ.НоваяКолонка("ДатаДок", "Дата",,,"Дата", 15);
   ТЗ.НоваяКолонка("Документ", "Документ",,,,"Документ",,);
   ТЗ.НоваяКолонка("Номер", "Строка", 20,,"Номер", 15);
   ТЗ.НоваяКолонка("Товар", "Справочник.ТМЦ",,,,"Товар",,);
   ТЗ.НоваяКолонка("Ошибка", "Строка",,,,"Ошибка",,);
   ТЗ.НоваяСтрока();    
   Конт.ВыбратьСтроки();
   Стр = Конт.ПолучитьСтроку();
   прихцена=Окр(Конт.ТМЦ.Цена_Прих.Получить(Конт.ДатаДок)*(1+Конт.ТМЦ.СтавкаНДС.Ставка.Получить(Конт.ДатаДок)),2);
   докцена=Окр(?(Конт.Кво*Конт.Коэффициент=0,0,Конт.СуммаСНДС/(Конт.Кво*Конт.Коэффициент)),2);
     Если докцена<прихцена Тогда
       ВсеВыбрано = ?((ДоступАдмина+ДоступБуха)=2,0,ВсеВыбрано);
       //Возврат(Конт.НомерДок+" "+Конт.номерСтроки+"."+Конт.ТМЦ+" має ціну нижчу за прихідну ");
       ТЗ.ДатаДок = Конт.ДатаДок;
       ТЗ.Номер   = Конт.НомерДок;
       ТЗ.Товар   = Конт.ТМЦ;                  
       ТЗ.Ошибка  = " має ціну нижчу за прихідну ";
   КонецЕсли;
   Возврат(ТЗ);
КонецФункции
//*******************************************
Процедура Сформировать()
   Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("Таблица");
   Таб.ВывестиСекцию("Шапка");
   ВыбДок=СоздатьОбъект("Документ.РасходнаяНакладная");
   ВыбДок.ВыбратьДокументы(ДатаС,ДатаПо);
   Пока ВыбДок.ПолучитьДокумент()<>0 Цикл
         Состояние("Перевірка "+ВыбДок+" ...");            
         ТЗ=Разность(ВыбДок);            
         Если ТЗ.КоличествоСтрок()>0 Тогда
             Таб.ВывестиСекцию("Проба");
         КонецЕсли;
   КонецЦикла;
     Состояние("Готово!");      
   Таб.ТолькоПросмотр(1);
   Таб.Опции(0,0,Таб.ВысотаСекции("Шапка"),0);
   Таб.ТолькоПросмотр(1);
   Таб.Защита(0);
   Таб.Показать("Негаразд","");      
КонецПроцедуры
Так там вроде так как и вы советовали...
214 sapphire
 
11.02.13
15:16
Функция Разность(Конт)
Перем кат,минцена,докцена;
   ТЗ = СоздатьОбъект("ТаблицаЗначений");
   ТЗ.НоваяКолонка("ДатаДок", "Дата",,,"Дата", 15);
   ТЗ.НоваяКолонка("Документ", "Документ",,,,"Документ",,);
   ТЗ.НоваяКолонка("Номер", "Строка", 20,,"Номер", 15);
   ТЗ.НоваяКолонка("Товар", "Справочник.ТМЦ",,,,"Товар",,);
   ТЗ.НоваяКолонка("Ошибка", "Строка",,,,"Ошибка",,);
   ТЗ.НоваяСтрока();    
   Конт.ВыбратьСтроки();
   Стр = Конт.ПолучитьСтроку();
   прихцена=Окр(Конт.ТМЦ.Цена_Прих.Получить(Конт.ДатаДок)*(1+Конт.ТМЦ.СтавкаНДС.Ставка.Получить(Конт.ДатаДок)),2);
   докцена=Окр(?(Конт.Кво*Конт.Коэффициент=0,0,Конт.СуммаСНДС/(Конт.Кво*Конт.Коэффициент)),2);
      Если докцена<прихцена Тогда
       ВсеВыбрано = ?((ДоступАдмина+ДоступБуха)=2,0,ВсеВыбрано);
       //Возврат(Конт.НомерДок+" "+Конт.номерСтроки+"."+Конт.ТМЦ+" має ціну нижчу за прихідну ");
// ГДЕ ЗАПОЛНЕНИЕ КОЛОНКИ ДОКУМЕНТ?????
       ТЗ.ДатаДок = Конт.ДатаДок;
// ГДЕ ЗАПОЛНЕНИЕ КОЛОНКИ ДОКУМЕНТ?????
       ТЗ.Номер   = Конт.НомерДок;
// ГДЕ ЗАПОЛНЕНИЕ КОЛОНКИ ДОКУМЕНТ?????
       ТЗ.Товар   = Конт.ТМЦ;          
// ГДЕ ЗАПОЛНЕНИЕ КОЛОНКИ ДОКУМЕНТ?????          
       ТЗ.Ошибка  = " має ціну нижчу за прихідну ";
// ГДЕ ЗАПОЛНЕНИЕ КОЛОНКИ ДОКУМЕНТ?????

   КонецЕсли;
   Возврат(ТЗ);
КонецФункции
215 bananan
 
11.02.13
15:16
Я опустил добавление в ТЗ значения Документ..
Сейчас это исправил, но документ ВСЕ_РАВНО НЕ ОТКРЫВАЕТСЯ
216 sapphire
 
11.02.13
15:17
Функция Разность(Конт)
Перем кат,минцена,докцена;
   ТЗ = СоздатьОбъект("ТаблицаЗначений");
   ТЗ.НоваяКолонка("ДатаДок", "Дата",,,"Дата", 15);
   ТЗ.НоваяКолонка("Документ", "Документ",,,,"Документ",,);
   ТЗ.НоваяКолонка("Номер", "Строка", 20,,"Номер", 15);
   ТЗ.НоваяКолонка("Товар", "Справочник.ТМЦ",,,,"Товар",,);
   ТЗ.НоваяКолонка("Ошибка", "Строка",,,,"Ошибка",,);
   ТЗ.НоваяСтрока();    // А это зачем?
   Конт.ВыбратьСтроки();
   Стр = Конт.ПолучитьСтроку();
   прихцена=Окр(Конт.ТМЦ.Цена_Прих.Получить(Конт.ДатаДок)*(1+Конт.ТМЦ.СтавкаНДС.Ставка.Получить(Конт.ДатаДок)),2);
   докцена=Окр(?(Конт.Кво*Конт.Коэффициент=0,0,Конт.СуммаСНДС/(Конт.Кво*Конт.Коэффициент)),2);
      Если докцена<прихцена Тогда
       ВсеВыбрано = ?((ДоступАдмина+ДоступБуха)=2,0,ВсеВыбрано);
       //Возврат(Конт.НомерДок+" "+Конт.номерСтроки+"."+Конт.ТМЦ+" має ціну нижчу за прихідну ");

       ТЗ.ДатаДок = Конт.ДатаДок;
       ТЗ.Номер   = Конт.НомерДок;
       ТЗ.Товар   = Конт.ТМЦ;                  
       ТЗ.Ошибка  = " має ціну нижчу за прихідну ";
   КонецЕсли;
   Возврат(ТЗ);
КонецФункции
217 Privalov
 
11.02.13
15:17
(215) Чего кричим?
218 sapphire
 
11.02.13
15:17
(215)
Код! Код! Код!
Шайбу! Шайбу! Шайбу!
219 sapphire
 
11.02.13
15:18
(217) Косячит :)
220 bananan
 
11.02.13
15:22
(216) Убрал в коде Тз.НоваяСтрока() так он выдал таблицу только с шапкой!
221 Privalov
 
11.02.13
15:24
(219) Он издевается?
222 DalexLad
 
11.02.13
15:25
Без обиды. Скажи зачем ты это убрал? Тебя ведь просили ЗАПОЛНИТЬ. Сегодня ж не пятница, дай людям поработать :-)
223 Mikeware
 
11.02.13
15:26
(21) не, он в самом деле такой...
224 sapphire
 
11.02.13
15:30
(220) ЗАЧЕМ ?!
225 bananan
 
11.02.13
15:35
(224) Так кто-то из вас советовал... Не вопрос - сейчас опять поставлю...
226 Mikeware
 
11.02.13
15:36
(224) "а вдруг получится?"
:-)))
227 bananan
 
11.02.13
15:37
Поставил Новая строка - обратно.. Таблица формируется, но
1. Документ не открывается и еще есть много пустых строк в таблице
228 bananan
 
11.02.13
15:40
+(227) Вот какой вид у таблицы сейчас:
Аналіз документів за вибраний період                        
                       
                       
                       
                       
                       
                       
Документ    №    Товар    Поимлка            
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
                       
   АТ-0037210    Шам-ни "Особливі"марин. цілі с/б 314 мл 12шт Чемпіон     має ціну нижчу за прихідну            
   АТ-0037211    2*100 ф/п "Magik" чорний 24шт     має ціну нижчу за прихідну            
                       
                       
                       
                       
                       
                       
                       
   АТ-0037219    Шам-ни "Особливі"марин. цілі с/б 580 мл 12шт Чемпіон     має ціну нижчу за прихідну
229 bananan
 
11.02.13
15:42
Отсюда вопросы:
Почему а таблице есть пустые стркои и как сделать чтобы их не было
Почему документ не открывается и как сделать чтобы он открывался
230 sapphire
 
11.02.13
15:43
(225) Где ты там совет такой увидел?
231 sapphire
 
11.02.13
15:45
(227) Мы текущий код увидим или продолжим гадать, где именно тебя переклинило?
232 DalexLad
 
11.02.13
15:47
(229) Наконец-то, хоть для себя ты понял вопросы. Теперь последоватено их решаем.
Начнем со второго:-). ПОТОМУ ЧТО ты не сделал
ТЗ.Документ = Конт.ТекущийДокумент();
:-).
Когда решиш второй, переходи к первому.
С нетерпением ждем вестей
233 bananan
 
11.02.13
15:48
(230) вроде ты такой совет давал:
Функция Разность(Конт)
Перем кат,минцена,докцена;
   ТЗ = СоздатьОбъект("ТаблицаЗначений");
   ТЗ.НоваяКолонка("ДатаДок", "Дата",,,"Дата", 15);
   ТЗ.НоваяКолонка("Номер", "Строка", 20,,"Номер", 15);
   ТЗ.НоваяКолонка("Товар", "Справочник.ТМЦ",,,,"Товар",,);
       //ТЗ.НоваяКолонка("Документ", "Документ", , , ,"Документ",,);


   Конт.ВыбратьСтроки();
   
   Пока Конт.ПолучитьСтроку()=1 Цикл
Сейчас покажу весь код
234 bananan
 
11.02.13
15:49
(232)    ТЗ.Документ = Конт.ТекущийДокумент() есть у меня (см (233))
235 bananan
 
11.02.13
15:50
сори даю весь код
236 bananan
 
11.02.13
15:50
Перем ВыбНачПериода, ВыбКонПериода, ТЗ;
//*******************************************
Функция Разность(Конт)
Перем кат,минцена,докцена;
   ТЗ = СоздатьОбъект("ТаблицаЗначений");
   ТЗ.НоваяКолонка("ДатаДок", "Дата",,,"Дата", 15);
   ТЗ.НоваяКолонка("Документ", "Документ",,,,"Документ",,);
   ТЗ.НоваяКолонка("Номер", "Строка", 20,,"Номер", 15);
   ТЗ.НоваяКолонка("Товар", "Справочник.ТМЦ",,,,"Товар",,);
   ТЗ.НоваяКолонка("Ошибка", "Строка",,,,"Ошибка",,);
   ТЗ.НоваяСтрока();    
   Конт.ВыбратьСтроки();
   Стр = Конт.ПолучитьСтроку();
   прихцена=Окр(Конт.ТМЦ.Цена_Прих.Получить(Конт.ДатаДок)*(1+Конт.ТМЦ.СтавкаНДС.Ставка.Получить(Конт.ДатаДок)),2);
   докцена=Окр(?(Конт.Кво*Конт.Коэффициент=0,0,Конт.СуммаСНДС/(Конт.Кво*Конт.Коэффициент)),2);
     Если докцена<прихцена Тогда
       ВсеВыбрано = ?((ДоступАдмина+ДоступБуха)=2,0,ВсеВыбрано);
       //Возврат(Конт.НомерДок+" "+Конт.номерСтроки+"."+Конт.ТМЦ+" має ціну нижчу за прихідну ");
       ТЗ.Документ = Конт.ТекущийДокумент();
       ТЗ.ДатаДок  = Конт.ДатаДок;
       ТЗ.Номер    = Конт.НомерДок;
       ТЗ.Товар    = Конт.ТМЦ;                  
       ТЗ.Ошибка   = " має ціну нижчу за прихідну ";
   КонецЕсли;
   Возврат(ТЗ);
КонецФункции
//*******************************************
Процедура Сформировать()
   Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("Таблица");
   Таб.ВывестиСекцию("Шапка");
   ВыбДок=СоздатьОбъект("Документ.РасходнаяНакладная");
   ВыбДок.ВыбратьДокументы(ДатаС,ДатаПо);
   Пока ВыбДок.ПолучитьДокумент()<>0 Цикл
         Состояние("Перевірка "+ВыбДок+" ...");            
         ТЗ=Разность(ВыбДок);            
         Если ТЗ.КоличествоСтрок()>0 Тогда
             Таб.ВывестиСекцию("Проба");
         КонецЕсли;
   КонецЦикла;
     Состояние("Готово!");      
   Таб.ТолькоПросмотр(1);
   Таб.Опции(0,0,Таб.ВысотаСекции("Шапка"),0);
   Таб.ТолькоПросмотр(1);
   Таб.Защита(0);
   Таб.Показать("Негаразд","");      
КонецПроцедуры
237 bananan
 
11.02.13
15:50
(234) см не (233) а (236)
238 DalexLad
 
11.02.13
15:51
(233)(234)Он то плакал, то смеялся, он над нами издевался
239 bananan
 
11.02.13
15:52
(238) смотри весь код (236)
240 Ёпрст
 
11.02.13
15:56
Наслаждайся

//Перем ВыбНачПериода, ВыбКонПериода, ТЗ;
//*******************************************

Функция Разность(Конт)
//Перем кат,минцена,докцена;
   ТЗ = СоздатьОбъект("ТаблицаЗначений");
//  ТЗ.НоваяКолонка("ДатаДок", "Дата",,,"Дата", 15);
//  ТЗ.НоваяКолонка("Документ", "Документ",,,,"Документ",,);
//  ТЗ.НоваяКолонка("Номер", "Строка", 20,,"Номер", 15);
   ТЗ.НоваяКолонка("Товар");
   ТЗ.НоваяКолонка("Ошибка");
   ТЗ.НоваяКолонка("Стр");
   Конт.ВыбратьСтроки();
   Пока Конт.ПолучитьСтроку()=1 Цикл
       прихцена=Окр(Конт.ТМЦ.Цена_Прих.Получить(Конт.ДатаДок)*(1+Конт.ТМЦ.СтавкаНДС.Ставка.Получить(Конт.ДатаДок)),2);
       докцена=Окр(?(Конт.Кво*Конт.Коэффициент=0,0,Конт.СуммаСНДС/(Конт.Кво*Конт.Коэффициент)),2);
       Если докцена<прихцена Тогда
           ВсеВыбрано = ?((ДоступАдмина+ДоступБуха)=2,0,ВсеВыбрано);
           ТЗ.НоваяСтрока();    
           ТЗ.Товар   = Конт.ТМЦ;                  
           ТЗ.Ошибка  = " має ціну нижчу за прихідну ";
           ТЗ.Стр     = Конт.НомерСтроки;
       КонецЕсли;
   КонецЦикла;
   Возврат(ТЗ);
КонецФункции
//*******************************************

Процедура Сформировать()
   Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("Таблица");
   Таб.ВывестиСекцию("Шапка");
   Таб.Опции(0,0,Таб.ВысотаТаблицы());
   ВыбДок=СоздатьОбъект("Документ.РасходнаяНакладная");
   ВыбДок.УстановитьФильтр(1,0);
   ВыбДок.ВыбратьДокументы(ДатаС,ДатаПо);
   Пока ВыбДок.ПолучитьДокумент()<>0 Цикл
         Состояние("Перевірка "+ВыбДок+" ...");            
         ТЗ=Разность(ВыбДок);            
         Если ТЗ.КоличествоСтрок()>0 Тогда
            ПечДок = ВыбДок.ТекущийДокумент();//ПечДок воткнешь в расшифровку и в выражение ячейки
            Таб.ВывестиСекцию("Документ");
            ТЗ.ВыбратьСтроки();
            Пока ТЗ.ПолучитьСтроку()=1 Цикл
               ПечОшибка = ТЗ.Ошибка;
               ПечТовар = ТЗ.Товар;
               ПечНомерСтрокиСОшибкой = ТЗ.Стр;
               Таб.ВывестиСекцию("Ошибка");//ты выведешь детализацию ошибки по документу
            КонецЦикла;
         КонецЕсли;
   КонецЦикла;
   Состояние("Готово!");      
   Таб.ТолькоПросмотр(1);
   Таб.Защита(0);
   Таб.Показать("Негаразд","");      
КонецПроцедуры
241 sapphire
 
11.02.13
16:01
// КОРМИМ ТРОЛЛЯ С РУКИ. 5 серия

Перем ВыбНачПериода, ВыбКонПериода, ТЗ;
//*******************************************

Функция Разность(Конт)
Перем кат,минцена,докцена;
   ТЗ = СоздатьОбъект("ТаблицаЗначений");
   ТЗ.НоваяКолонка("ДатаДок", "Дата",,,"Дата", 15);
   ТЗ.НоваяКолонка("Документ", "Документ",,,,"Документ",,);
   ТЗ.НоваяКолонка("Номер", "Строка", 20,,"Номер", 15);
   ТЗ.НоваяКолонка("Товар", "Справочник.ТМЦ",,,,"Товар",,);
   ТЗ.НоваяКолонка("Ошибка", "Строка",,,,"Ошибка",,);
   
   Конт.ВыбратьСтроки();
   
   //Стр = Конт.ПолучитьСтроку();
   Пока Конт.ПолучитьСтроку()=1 Цикл
     прихцена=Окр(Конт.ТМЦ.Цена_Прих.Получить(Конт.ДатаДок)*(1+Конт.ТМЦ.СтавкаНДС.Ставка.Получить(Конт.ДатаДок)),2);
     докцена=Окр(?(Конт.Кво*Конт.Коэффициент=0,0,Конт.СуммаСНДС/(Конт.Кво*Конт.Коэффициент)),2);
   Если докцена<прихцена Тогда
       //ВсеВыбрано = ?((ДоступАдмина+ДоступБуха)=2,0,ВсеВыбрано);
       //Возврат(Конт.НомерДок+" "+Конт.номерСтроки+"."+Конт.ТМЦ+" має ціну нижчу за прихідну ");
       ТЗ.НоваяСтрока();      
       ТЗ.Документ = Конт.ТекущийДокумент();
       ТЗ.ДатаДок  = Конт.ДатаДок;
       ТЗ.Номер    = Конт.НомерДок;
       ТЗ.Товар    = Конт.ТМЦ;                  
       ТЗ.Ошибка   = " має ціну нижчу за прихідну ";
       Прервать;
   КонецЕсли;
   КонецЦикла;
   Возврат(ТЗ);
КонецФункции
//*******************************************

Процедура Сформировать()
   Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("Таблица");
   Таб.ВывестиСекцию("Шапка");
   ВыбДок=СоздатьОбъект("Документ.РасходнаяНакладная");
   ВыбДок.ВыбратьДокументы(ДатаС,ДатаПо);
   
   ТЗ = СоздатьОбъект("ТаблицаЗначений");
   ТЗ.НоваяКолонка("ДатаДок", "Дата",,,"Дата", 15);
   ТЗ.НоваяКолонка("Документ", "Документ",,,,"Документ",,);
   ТЗ.НоваяКолонка("Номер", "Строка", 20,,"Номер", 15);
   ТЗ.НоваяКолонка("Товар", "Справочник.ТМЦ",,,,"Товар",,);
   ТЗ.НоваяКолонка("Ошибка", "Строка",,,,"Ошибка",,);
   
   Пока ВыбДок.ПолучитьДокумент()<>0 Цикл
         Состояние("Перевірка "+ВыбДок+" ...");            
         ТЗ=Разность(ВыбДок);            
         Если ТЗ.КоличествоСтрок()>0 Тогда
             Таб.ВывестиСекцию("Проба");
         КонецЕсли;
   КонецЦикла;
     Состояние("Готово!");      
   Таб.ТолькоПросмотр(1);
   Таб.Опции(0,0,Таб.ВысотаСекции("Шапка"),0);
   Таб.ТолькоПросмотр(1);
   Таб.Защита(0);
   Таб.Показать("Негаразд","");      
КонецПроцедуры
242 sapphire
 
11.02.13
16:06
теперь у него есть выбор: что же скопипастить и в какой последовательности :)))))
243 sapphire
 
11.02.13
16:13
Затих ТС... Ушёл копипастить, наверное....
244 sapphire
 
11.02.13
16:15
(240) Интересно, понимает ли разницу между (240) и (241)?
245 bananan
 
11.02.13
16:21
(240) Документ все равно НЕ ОТКРЫВАЕТСЯ в поле выражение:ПечДок расшифровка этого поля ПечДок
246 bananan
 
11.02.13
16:22
(244) Ты в отличие от (240) оставил структуру моей таблицы нетронутой, дальше не вникал
247 Ёпрст
 
11.02.13
16:23
(245) не верю.
У ячейки, свойство "Защита" воткнута хоть в макете ?
248 bananan
 
11.02.13
16:25
(247) Да, - воткнута
249 Ёпрст
 
11.02.13
16:26
Лупа появляется, когда подводишь курсор к ячейке ?
250 Ёпрст
 
11.02.13
16:26
Ты точно секцию Документ выводишь ?
251 bananan
 
11.02.13
16:28
(249) Лупа не появляется
(250) Точно
252 sapphire
 
11.02.13
16:28
(246) Ну молодец, что не вникал.
253 bananan
 
11.02.13
16:29
И как сделать чтобы (в данном случае) ТЗ.Товар в яцейку выводилось в несколько строк?
254 Ёпрст
 
11.02.13
16:29
(251) ну значит, смотришь значение не у той ячейки, либо в ячейку ничего не записал, либо у таблицы не стоит ТолькоПросмотр(1)
255 sapphire
 
11.02.13
16:30
// КОРМИМ ТРОЛЛЯ С РУКИ. 6 серия


Перем ВыбНачПериода, ВыбКонПериода, ТЗ;
//*******************************************


Функция Разность(Конт)
Перем кат,минцена,докцена;
   ТЗ = СоздатьОбъект("ТаблицаЗначений");
   ТЗ.НоваяКолонка("ДатаДок", "Дата",,,"Дата", 15);
   ТЗ.НоваяКолонка("Документ", "Документ",,,,"Документ",,);
   ТЗ.НоваяКолонка("Номер", "Строка", 20,,"Номер", 15);
   ТЗ.НоваяКолонка("Товар", "Справочник.ТМЦ",,,,"Товар",,);
   ТЗ.НоваяКолонка("Ошибка", "Строка",,,,"Ошибка",,);
   
   Конт.ВыбратьСтроки();
   
   //Стр = Конт.ПолучитьСтроку();

   Пока Конт.ПолучитьСтроку()=1 Цикл
     прихцена=Окр(Конт.ТМЦ.Цена_Прих.Получить(Конт.ДатаДок)*(1+Конт.ТМЦ.СтавкаНДС.Ставка.Получить(Конт.ДатаДок)),2);
     докцена=Окр(?(Конт.Кво*Конт.Коэффициент=0,0,Конт.СуммаСНДС/(Конт.Кво*Конт.Коэффициент)),2);
   Если докцена<прихцена Тогда
       //ВсеВыбрано = ?((ДоступАдмина+ДоступБуха)=2,0,ВсеВыбрано);

       //Возврат(Конт.НомерДок+" "+Конт.номерСтроки+"."+Конт.ТМЦ+" має ціну нижчу за прихідну ");

       ТЗ.НоваяСтрока();      
       ТЗ.Документ = Конт.ТекущийДокумент();
       ТЗ.ДатаДок  = Конт.ДатаДок;
       ТЗ.Номер    = Конт.НомерДок;
       ТЗ.Товар    = Конт.ТМЦ;                  
       ТЗ.Ошибка   = " має ціну нижчу за прихідну ";
       Прервать;
   КонецЕсли;
   КонецЦикла;
   Возврат(ТЗ);
КонецФункции
//*******************************************


Процедура Сформировать()
   Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("Таблица");
   Таб.ВывестиСекцию("Шапка");
   ВыбДок=СоздатьОбъект("Документ.РасходнаяНакладная");
   ВыбДок.ВыбратьДокументы(ДатаС,ДатаПо);
   
   ТЗ = СоздатьОбъект("ТаблицаЗначений");
   ТЗ.НоваяКолонка("ДатаДок", "Дата",,,"Дата", 15);
   ТЗ.НоваяКолонка("Документ", "Документ",,,,"Документ",,);
   ТЗ.НоваяКолонка("Номер", "Строка", 20,,"Номер", 15);
   ТЗ.НоваяКолонка("Товар", "Справочник.ТМЦ",,,,"Товар",,);
   ТЗ.НоваяКолонка("Ошибка", "Строка",,,,"Ошибка",,);
   
   Пока ВыбДок.ПолучитьДокумент()<>0 Цикл
         Состояние("Перевірка "+ВыбДок+" ...");            
         ТЗ=Разность(ВыбДок);            
         Если ТЗ.КоличествоСтрок()>0 Тогда
             ТЗ.ПолучитьСтрокуПоНомеру(1);
             Таб.ВывестиСекцию("Проба");
         КонецЕсли;
   КонецЦикла;
     Состояние("Готово!");      
   Таб.ТолькоПросмотр(1);
   Таб.Опции(0,0,Таб.ВысотаСекции("Шапка"),0);
   Таб.ТолькоПросмотр(1);
   Таб.Защита(0);
   Таб.Показать("Негаразд","");      
КонецПроцедуры
256 bananan
 
11.02.13
16:31
(254) по поводу последнего:
  Состояние("Готово!");      
   Таб.ТолькоПросмотр(1);
   Таб.Защита(0);
   Таб.Показать("Негаразд","");
предыдущее сейчас посмотрю
257 Ёпрст
 
11.02.13
16:32
(253)
завести в макете 2 горизонтальные секции, одну обозвать "Документ", вторую "Ошибка"

в секции "Документ" в ячейке написать, тип - выражение, в выражение и расшифровку - печДок

в секции "Ошибка" 3 ячейки - тип выражение, в выражение
ПечОшибка ,ПечТовар и ПечНомерСтрокиСОшибкой

Затем скопировать код из (240) целиком и наслаждаться
258 sapphire
 
11.02.13
16:32
Таб.Защита(1);
259 bananan
 
11.02.13
16:32
Ячейку тк смотрю..., записал я (код твой): ПечДок = ВыбДок.ТекущийДокумент();
260 bananan
 
11.02.13
16:33
(253) Сейчас попробую
261 sapphire
 
11.02.13
16:34
(259) Ты куда его записал?! В ячейку?!
262 bananan
 
11.02.13
16:34
(258) Спасибо, - заработало!
263 bananan
 
11.02.13
16:35
(261) ПечДок это выражение в ячейке таблицы, не работало потому что было Таб.Защита(0)
264 bananan
 
11.02.13
16:41
Так можно ли сделать чтобы в ячейке таблицы текст разбивался на несколько строк?
265 Ёпрст
 
11.02.13
16:43
Контроль-переносить, высота строки - авто
266 bananan
 
11.02.13
16:47
(265) Спасибо
267 bananan
 
11.02.13
16:48
+(265) правда, я не нашел где задавать высоту строки...
268 oslokot
 
11.02.13
16:53
(267) так же как в ехеl
269 bananan
 
11.02.13
17:00
(268) Понял, СПАСИБО
270 bananan
 
12.02.13
12:29
Добрый день!
Такой вопрос можно ли программно (из кода) задать скажем цвет ячейки в таблице и если можно, то как?
271 Wobland
 
12.02.13
12:31
(270) цвет фона у области что ль?
272 bananan
 
12.02.13
12:32
(271) Да, но можно и цвет шрифта
273 Wobland
 
12.02.13
12:32
(272) благословляю
274 Wobland
 
12.02.13
12:32
(272) цвет текста это называется
275 bananan
 
12.02.13
12:33
+(272) Мне просто нужно чтобы нектороые ячейки визуально отрезнялись от других и делать это надо из кода скрипта а не в самой тьаблице
276 Wobland
 
12.02.13
12:34
(275) я понял
277 bananan
 
12.02.13
12:34
(274) Спасибо за благословление, но какой код нужно для этого написать?
278 Mikeware
 
12.02.13
12:35
"Шо, опять?"©ЖБП
279 Wobland
 
12.02.13
12:35
(277) а не знаю, давно не писал. все ключевые слова у тебя есть
280 Wobland
 
12.02.13
12:36
+(279) предлагаю заняться присвоением
281 Mikeware
 
12.02.13
13:04
(280) собственно, он как минимум уже два месяца им  занимается.. "незаконным присвоением зарплаты"
282 bananan
 
12.02.13
13:04
Вопрос на макете таблицы ячейка такая (12, 2,12, 2)
Как узнать координаты какие координаты у данной ячейки в данный момент (ячейка выводиться в цикле)?
283 Ёпрст
 
12.02.13
13:07
(282) Используй СП о юный падаван!
В нём вся сила - смотри методы работы с таблицей, в них скрыт ответ твой.
284 Wobland
 
12.02.13
13:08
(282) умоляю: не путай координаты внутри ТабДока с координатами внутри области
285 bananan
 
12.02.13
13:13
(283) Смотрел 5 минут...
Так вот там я не нашел об этом ничего
286 bananan
 
12.02.13
13:14
(284) Не понял...
287 Wobland
 
12.02.13
13:14
(286) координаты у данной ячейки в данный момент не меняются в общем случае
288 Wobland
 
12.02.13
13:15
(285) осталось 2 года, 364 дня, 23 часа и 55 минут
289 Mikeware
 
12.02.13
13:16
(288) ты излишне оптимистичен...
290 bananan
 
12.02.13
13:17
(287) Хорошо. Сформулирую задачу иначе. На макете таблицы есть ячейка (12, 2, 12, 2) она выводится на экран в цикле...
Как к ней обратиться (по какому адресу на даной итерации она находится?)?
291 Ёпрст
 
12.02.13
13:17
(285) Монитор твой запылился, протри его тряпочкой - возьми себя в руки и еще раз спроси у СП про методы для работы с Таблицей, в особенности про ВысотаТаблицы(), Область() и ЦветФона(),ЦветТекста()
292 Wobland
 
12.02.13
13:19
(290) на макете таблицы есть область. часто иногда она состоит из одной строки, так что на каждой итерации она будет иметь те же координаты - (1, 2), к примеру
293 Ёпрст
 
12.02.13
13:19
Есть как минимум, 4 способа расскраски таблицы:

1.выводить заранее раскрашенные секции
2.получать секцию, раскрашивать область в этой секции, выводить эту секцию
3.выводить секцию, раскрашивать область в выведенной таблице
4.просто раскрашивать любую область в выведенной таблице
294 Wobland
 
12.02.13
13:20
(291) методы? это новость
295 Wobland
 
12.02.13
13:21
(294) мда, уродская семёрка ;)
296 bananan
 
12.02.13
13:24
(291) Монитор мой в порядке...
Просто на макете ячейка имеет координаты 12.2.12.2
в цикле данная ячейка выводиться Н-раз каким методом узнать адрес исходной ячейки на данной итерации цикла?
Область - Возвращает значение типа ''ОбластьТаблицы'' области секции таблицы или секции таблицы в режиме ввода данных.
Цвета - пропускаем...
ВысотаТаблицы - Возвращает число строк в сформированной результирующей таблице.
И как из этого узнать текущие координаты исходной ячейки??
297 trad
 
12.02.13
13:24
(295) не трожь кормилицу!
298 Wobland
 
12.02.13
13:26
(296) можешь ещё раз обдумать мои слова, высказанные в свете метода №2 по Ёпрсту
299 Wobland
 
12.02.13
13:27
(297) ПустоеЗначение()=0 - ну что за пакость? ;)
300 Ёпрст
 
12.02.13
13:27
(296) читай (291), (293) ..много думай, о юный падаван!
Используй силу чтения.
Все ответы даны.
301 bananan
 
12.02.13
13:27
(292) Ты не прав...
код:
Если СтрДлина(ТЗ.Ошибка)>0 Тогда
                       Обл = Таб.Область(12, 2,12, 2);
                       Сообщить(Обл.ЦветФона(1, 1, 1));
                       Сообщить(Обл.ЦветТекста(125, 125, 125));
                       Таб.ВывестиСекцию("Ошибка");
                   
В результирующей таблице ТОЛЬКО ОДНА ЯЧЕЙКА имеет .ЦветФона(1, 1, 1) и ЦветТекста(125, 125, 125)
Эта ячейка принадлежить секции "Ошибка" секция ошибка скажем выводиться 50 раз и каждый раз исходная ячейка будет в итоговой таблице по одинаковому адресу?
302 bananan
 
12.02.13
13:28
(300) О, Йода! Ответов я там не нашел
303 Wobland
 
12.02.13
13:28
(301) именно так я и поступал. 50 выводов секции с раскраской ячейки в первой строке области. но в восьмёрке
304 Ёпрст
 
12.02.13
13:29
(302) херовый из тебя ученик, о юный падаван.
Что непонятно тебе в (293) ? Какой путь из 4 тебе непонятен ?
305 Wobland
 
12.02.13
13:29
(302) скажи "не распознал"
306 Mikeware
 
12.02.13
13:29
(298) ты сам-то понял, что сказал?
307 Wobland
 
12.02.13
13:30
(306) это реплика ТС
308 bananan
 
12.02.13
13:30
опять же при первой итерации адрес ячейки будет (12, 2, 12, 2) а при второй может так (13, 2, 13, 2)?
Сейчас проверю
309 Mikeware
 
12.02.13
13:31
(307) ты сказал крамольное слово "обдумать"!
310 Wobland
 
12.02.13
13:35
(309) а что, уже никто тут не надеется? ;)
311 sapphire
 
12.02.13
13:35
Я смотрю теперь за закраску принялся....
312 sapphire
 
12.02.13
13:36
(310) Не все ждут :)
313 ЧеловекДуши
 
12.02.13
13:37
Жесть... он (0) решил в одной ветке всю конфу переписать :)
314 sapphire
 
12.02.13
13:38
(313) Не, он теперь красоту наводит :)
315 Privalov
 
12.02.13
13:53
(299) Не умное высказывание.
316 Wobland
 
12.02.13
13:55
(315) неграмотное высказывание ;)
317 Privalov
 
12.02.13
14:02
(316) :))
318 Privalov
 
12.02.13
14:03
Что-то вести с полей сегодня скудные ))
319 Mikeware
 
12.02.13
14:04
(318) удобрений мало....
320 Wobland
 
12.02.13
14:05
(318) опасаюсь, как бы он и впрямь не начал думать.. или уж перегрелся
321 Mikeware
 
12.02.13
14:07
(320) чем?
322 Privalov
 
12.02.13
14:09
(321) Он в нее ест ))
323 Privalov
 
12.02.13
14:20
Автор, не молчи.
324 bananan
 
12.02.13
14:20
+(308) Как я и предположил к номеру строки нужно плюсовать номер итерации...
325 bananan
 
12.02.13
14:21
Об этом в доке ничего не написано..
326 Ёпрст
 
12.02.13
14:24
(324) он не нужен тебе, о юный падаван.
Всё гораздо проще - используй силу, чтоб прочитать и понять
(293)
327 Wobland
 
12.02.13
14:27
(326) он пошёл путём 4, похоже
328 Mikeware
 
12.02.13
14:28
(327) как ленин, аднако!
329 Wobland
 
12.02.13
14:34
(328) ленин хоть документацию читал. и даже писал
330 sapphire
 
12.02.13
14:34
А интересно таки, ТС - это ник, передаваемый подаванами 1С из в рук в руки вместе с подопытной конторой, или без? :)
331 Privalov
 
12.02.13
14:35
(330) Интрига! ))
332 Mikeware
 
12.02.13
14:41
(329) "дедушка умер, а дело живет - лучше бы было наоборот!"
333 Mikeware
 
12.02.13
14:42
(330) во втором конверте?
334 Ёпрст
 
12.02.13
14:48
врят ли тс знает байку про 3 конверта
335 Mikeware
 
12.02.13
14:48
(334) а может, для него это не байка? :-)
336 Ёпрст
 
12.02.13
14:49
(335) готовит 3 конверта ужо ?
337 Privalov
 
12.02.13
14:53
Ушел автор. До завтра видимо ))))
338 Mikeware
 
12.02.13
14:54
(336) пока только второй открыл...
а там урл мизды,  ник и пароль...
339 bananan
 
12.02.13
18:36
Да не ушел я...
340 Ёпрст
 
12.02.13
18:38
(339) на почту ходил за конвертами ?
341 bananan
 
12.02.13
18:39
(340) Не поверишь - конвертов нет; сказали пользуйся электронкой
342 Ёпрст
 
12.02.13
18:42
постиг ли ты науку раскраски мокселя, о юный падаван ?
343 Mikeware
 
12.02.13
18:42
(342) фломастеры купил... ему так проще...
344 bananan
 
12.02.13
18:43
Ну раз вы так по мне соскучились...
Так вот...
я эту тему уже подымал, но тогда мы ни до чего не дошли..
Запрос перебирвает сотрудников фирмы (всех подразделений)
сотрудник может занимать ставку, или часть ставки..
так вот кроме того что запрос должен выдать инфу по сотрудниками...
на каждый подраздел фирмы он должен выдать сколько ставок занято у данного подраздела фирмы - вот с этим количеством не могу сообразить как его  подсчитать..
345 bananan
 
12.02.13
18:43
(343) Фломастеров тоже там нет - кризис
(342) Постиг
346 batman69
 
12.02.13
18:45
(344) И какие мысли и предложения по этому поводу?
347 bananan
 
12.02.13
18:48
(345) Да с одной стороны все просто суммируем поле ставка для всех сотруднков подразделения, а вот как это закодит - не знаю
348 Mikeware
 
12.02.13
18:49
(347) бедняга... ну, программиста наймие, чтоль...
349 bananan
 
12.02.13
18:50
+347 Сейчас текст запроса такой:
ТекстЗапроса = "//{{ЗАПРОС(СписокСотрудников)
   |Период с {ДатаАктуальности} по {ДатаАктуальности};
   |Сотр = Справочник.Сотрудники.ТекущийЭлемент;
   |Фир = Справочник.Сотрудники.Фирма;
   |Оклад = Справочник.Сотрудники.Оклад;
   |КвоЛьгот = Справочник.Сотрудники.КвоЛьгот;
   |Тариф = Справочник.Сотрудники.Тариф;
   |Пенсионер = Справочник.Сотрудники.Пенсионер;
   |Инвалид = Справочник.Сотрудники.Инвалид;
   |Должность = Справочник.Сотрудники.МестоРаботы;
   |Ставка = Справочник.Сотрудники.Ставка;
   |Совместитель = Справочник.Сотрудники.ТипСотрудника;
   |ДатаПриема = Справочник.Сотрудники.ДатаПриема;
   |ДатаУвольнения = Справочник.Сотрудники.ДатаУвольнения;
   |Функция КолСотр = СчЁтчик();
   |//основные
   |ДатаРождения = Справочник.Сотрудники.ДатаРождения;
   |//координаты
   |ПропискаАдрес = Справочник.Сотрудники.ПропискаАдрес;
   |ФактАдрес = Справочник.Сотрудники.ФактАдрес;
   |//кадровые
   |Стать = Справочник.Сотрудники.Пол;
   |Образование = Справочник.Сотрудники.Образование;
   |СемейноеПоложение = Справочник.Сотрудники.СемейноеПоложение;
   |//идентификация        
   |ИНН = Справочник.Сотрудники.ИНН;
   |ДокВид = Справочник.Сотрудники.ДокВид;
   |ДокСерия = Справочник.Сотрудники.ДокСерия;
   |ДокНомер = Справочник.Сотрудники.ДокНомер;
   |ДокКемВыдан = Справочник.Сотрудники.ДокКемВыдан;
   |ДокКогдаВыдан = Справочник.Сотрудники.ДокКогдаВыдан;
   |//условия запроса и т.д.
   |Условие(Фир=Фирма);
   |Условие (Число(Сотр.Родитель.Код) <> 0);
   |Условие(Сотр в ВыбСотрудник);
   |Условие(ДатаПриема<>Дата(0));
   |Условие(ДатаПриема<=ДатаАктуальности);";
   Если фОсновные=0 Тогда
       ТекстЗапроса=ТекстЗапроса+"
       |Условие(Совместитель=1);";
   КонецЕсли;
   Если фСовместители=0 Тогда
       ТекстЗапроса=ТекстЗапроса+"
       |Условие(Совместитель=0);";
   КонецЕсли;
   Если Пар=1 Тогда
       ТекстЗапроса=ТекстЗапроса+"
       |Группировка Сотр Упорядочить По Сотр.Наименование;";
   Иначе
       ТекстЗапроса=ТекстЗапроса+"
       |Группировка Сотр Упорядочить По Сотр.Код;";
   КонецЕсли;
   ТекстЗапроса=ТекстЗапроса+"
   |Функция Окл = Сумма(Оклад);    
   |Функция Тар = Сумма(Тариф);";
         
   
   
   Запрос = СоздатьОбъект("Запрос");
   Если Запрос.Выполнить(ТекстЗапроса)=0 Тогда
       Возврат;
   КонецЕсли;
350 bananan
 
12.02.13
18:50
(348) Да, чтобы мы джелали без тових подсказок :(
351 Ёпрст
 
12.02.13
18:52
вот это зачет вообще!

>>> |Условие (Число(Сотр.Родитель.Код) <> 0);

ЗЫ: Подразделение, это у тебя чего ? Реквизит в справочнике, или тупо группа в справочнике ?
352 bananan
 
12.02.13
18:52
Понятно что в текст запроса нужно добавить функцию став(), но ваот код функции - что-то не могу розрулить
353 bananan
 
12.02.13
18:53
(351) НЕ понял...
354 bananan
 
12.02.13
18:54
(352) подразделение - конечно же группа в справочнике
355 Ёпрст
 
12.02.13
18:56
(354)

|Ставка = Справочник.Сотрудники.Ставка;
|Функция ИтогоСтавка = Сумма(Ставка);


....

Пока Запрос.Группировка("Сотр")=1 Цикл
 Если.Запрос.ЭтоГруппа()=1 Тогда
      Сообщить("Ипать, а сумма ставок то по подразделению "+Запрос.Сотр +" равна "+Запрос.ИтогоСтавка);
 КонецЕсли;
356 bananan
 
12.02.13
19:01
355 Упс, прошу прощения это уже работает, просто надо чтобы уволенные сотрудники (вернее их ставки) не подсчитывались, я пока сам подумаю - если ничего не получиться - буду у вас спрашивать
357 Ёпрст
 
12.02.13
19:14
(356) используй Когда() при расчете функции, о юный падаван!
358 bananan
 
12.02.13
19:15
А в 1С как определить поле ДатаУвольнения установлено или нет?
359 bananan
 
12.02.13
19:17
(357) Функцию Когда() надо самому написать, о Сенсей?
360 DalexLad
 
12.02.13
19:32
Ну что 1000 постов потянем. Обгоним про тот мотороллер, котрый не мой. Ну а чтоб не забанили меня за флуд.
------------
А в 1С как определить поле ДатаУвольнения установлено или нет?
------------
Если ПустооеЗначенение(АААААААА)=1 Тогда

КонецЕсли;
-----------
Только там подвох, работает с точностью до наоборот:-)/
361 bananan
 
12.02.13
19:37
(360) В 1С разве что-то есть без подвоха...
362 Ёпрст
 
12.02.13
20:01
(359) Используй силу - открой СП наконец, посмотри на язык запросов и на функции + задание условия в Когда() при расчете функции.
363 bananan
 
13.02.13
11:17
(362) Спасибо за совет - сейчас посмотрю
364 Privalov
 
13.02.13
11:24
(363) О, скорость реакции!!!!
365 bananan
 
13.02.13
11:54
(362) Ёпрст, я тебя уважаю и люблю!
Написал так : |Функция ИтогоСтавка = Сумма(Ставка) Когда (ПустоеЗначение(ДатаУвольнения)=1);
Заработал запрсо так как надо!
366 bananan
 
13.02.13
11:55
(364) Иногда я ночую дома
367 Wobland
 
13.02.13
12:07
эх.. пол-мисты ему бесплатные советы даёт, а любит и уважает он только Ёпрста...
368 bananan
 
13.02.13
12:33
(367) Во-первых, я не сказал что только его уважаю и люблю, во-вторых Ёпрст, практически всегда дает дельные советы, а не поливает желчю как некоторые другие...
369 DalexLad
 
13.02.13
12:52
-Мы желчью не поливаем, мы полушутя, и любя подтруниваем :-)
370 bananan
 
13.02.13
12:53
(369) Большинство - подрунивает, а Некоторые - из них только желчь...
371 viktor_vv
 
13.02.13
12:55
(365) Теперь еще подумать как отработать ситуацию, при которой дата увольнения есть, но на дату отчета сотрудник еще работал.
372 bananan
 
13.02.13
13:03
(371) Логично, если нужно (а скорее всего - нужно) - значит сделаю
373 bananan
 
14.02.13
14:56
Добрый день!
Подскаждите, гед ляп:
                   Пока ТЗ.ПолучитьСтроку()=1 Цикл
                       ПечОшибка = ТЗ.Ошибка;
                       ПечТовар = ТЗ.Товар;
                       ПечНомерСтрокиСОшибкой = ТЗ.Стр;
                       Если ПечДок.НомерДок = ПредНомер Тогда
                           Обл = Таб.Область(иф, 1, иф-1, 1);
                           Сообщить(Обл);
                           Обл.Объединить();                

Дык ругается
Значение не представляет агрегатный объект (Объединить)
374 Wobland
 
14.02.13
14:57
(373) в "гед"
375 Wobland
 
14.02.13
14:59
обл - не область, как обычно
376 bananan
 
14.02.13
15:00
(374) Ты, как всегда с полезным советом, спасибо тебе, о великий печатальник, у которого ни одной опечатки
377 bananan
 
14.02.13
15:02
(375) Не понял
378 Wobland
 
14.02.13
15:02
(377) Значение не представляет агрегатный объект
379 Wobland
 
14.02.13
15:02
+(378) это оно про Обл
380 bananan
 
14.02.13
15:03
+(377) Если этот кусок кода поставить до цикла - не ругается, а в цикле что изменилось? причем я Обл здесь же и присваиваю
381 bananan
 
14.02.13
15:04
+380 говорю же если этот кусок кода не в теле цикла - все нормально компилируется
382 Mikeware
 
14.02.13
15:05
(381) открой для себя отладчик...
383 Wobland
 
14.02.13
15:05
(381) да, я знаю, отладчик в 7.7 неудобен по сравнению с восьмёркой, но он есть и приносит пользу
384 Wobland
 
14.02.13
15:05
+(383) поправка: способен приносить пользу
385 aka AMIGO
 
14.02.13
15:06
(381) в отладчике см. чему равны твои иф
386 bananan
 
14.02.13
15:06
По поводу отладчика я несколько раз пробывал - не работает он со внешними формами или я чего то не правильно делаю?
387 aka AMIGO
 
14.02.13
15:07
(385) + забыл.. иф надо объявлять-же
388 Wobland
 
14.02.13
15:08
(386) ты чего-то неправильно делаешь
389 bananan
 
14.02.13
15:09
(387) иф - это счетчик итераций, и обявляется он вне цикла, далле приведенного код иф
+1, а объявление до кода цикла иф = 1
390 Mikeware
 
14.02.13
15:10
(386) отжежмлять... у всех работает, а бананану неработающий подсунули...
может, все-таки в соотношении радиусов проблема?
391 bananan
 
14.02.13
15:11
(388) Можеьт.
Но вот сейвчас. запустил отладчик в нем открыл свою внешнюю форму. в коде поставил точку останова... А как теперь запустить??
392 aka AMIGO
 
14.02.13
15:11
(389) это строки: первая и последняя.. у тебя последняя выше первой
393 Mikeware
 
14.02.13
15:11
(398) тогда "Значение не представляет агрегатный объект (Объединить)" - более чем логично
394 bananan
 
14.02.13
15:11
(390) Каких радиусов?
395 Mikeware
 
14.02.13
15:12
(392) причем одна из них еще и нулевая..
396 bananan
 
14.02.13
15:13
(392) Не понял, привожу код процедуры полностью:
Процедура Сформировать()
   Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("Таблица");
   Таб.ВывестиСекцию("Шапка");
   Таб.Опции(0,0,Таб.ВысотаТаблицы());
   ОбДок = "Документ.РасходнаяНакладная";
   СчетИтер = 0;
   Пока СчетИтер<1 Цикл                  
       ВыбДок=СоздатьОбъект(ОбДок);
       Если СчетИтер = 0 Тогда
           ОбДок = "Документ.РасходнаяНакладная";
       Иначе
           ОбДок = "Документ.РасходнаяНакладнаяН";
       КонецЕсли;
       ВыбДок=СоздатьОбъект(ОбДок);
       ВыбДок.УстановитьФильтр(1,0);
       ВыбДок.ВыбратьДокументы(ДатаС,ДатаПо);
           иф = 1;
       Пока ВыбДок.ПолучитьДокумент()<>0 Цикл
             Состояние("Перевірка "+ВыбДок+" ...");            
             ТЗ=Разность(ВыбДок);            
             Если ТЗ.КоличествоСтрок()>0 Тогда
                ПечДок = ВыбДок.ТекущийДокумент();
                ТЗ.ВыбратьСтроки();
                Пока ТЗ.ПолучитьСтроку()=1 Цикл
                   ПечОшибка = ТЗ.Ошибка;
                   ПечТовар = ТЗ.Товар;
                   Если ТЗ.Стр <> 0 Тогда
                       ПечНомерСтрокиСОшибкой = ТЗ.Стр;
                   Иначе                        
                       ПечНомерСтрокиСОшибкой = "Усі";
                   КонецЕсли;
                   Если СтрДлина(ПечТовар)=0 Тогда
                       ПечТовар = "!!НОЛЬ!!!";
                   КонецЕсли;
                   Таб.ВывестиСекцию("Документ");
                   ПредНомер = "";
                   ПредНомер = ПечДок.НомерДок;
                   Пока ТЗ.ПолучитьСтроку()=1 Цикл
                       ПечОшибка = ТЗ.Ошибка;
                       ПечТовар = ТЗ.Товар;
                       ПечНомерСтрокиСОшибкой = ТЗ.Стр;
                       Если ПечДок.НомерДок = ПредНомер Тогда
                           Обл = Таб.Область(иф, 1, иф-1, 1);
                           Сообщить(Обл);
                           //Обл.Объединить();                
                           Сообщить ("+!!"+иф);
                       КонецЕсли;
                       
                       Сообщить("ПредНомер = "+ПредНомер+" "+иф+"-я итерация НомерДок= "+ПечДок.НомерДок);
                       Если СтрДлина(ТЗ.Ошибка)>0 Тогда
                           Обл = Таб.Область(12+1*иф, 2,(12+1*иф), 2);
                           Обл.ЦветФона(1, 1, 1);
                           Обл.ЦветТекста(125, 125, 125);
                           Таб.ВывестиСекцию("Ошибка");    
                           иф=иф+1;
                       КонецЕсли;
                КонецЦикла;
   
   
                КонецЦикла;
             КонецЕсли;
       КонецЦикла;        
       СчетИтер = СчетИтер + 1;
   КонецЦикла;
   Состояние("Готово!");      
   Таб.ТолькоПросмотр(1);
   Таб.Защита(1);
   Таб.Показать("Негаразд","");      
КонецПроцедуры
Так вод в цикле он ругается там оюэъединит зщаремарено
397 Mikeware
 
14.02.13
15:13
(394) у тебя отношение радиуса кривизны рук к радиусу кривизны извилин стремится к нулю...
398 aka AMIGO
 
14.02.13
15:14
Вместо

Обл = Таб.Область(иф, 1, иф-1, 1);

тогда уж

Обл = Таб.Область(иф-1, 1, иф, 1);

да еще и учесть (395)
399 bananan
 
14.02.13
15:15
(397) И как тут не вспомнить о желчи...?
400 Тоненький Клиент
 
14.02.13
15:16
400
401 bananan
 
14.02.13
15:17
Лан, а что в отладчике я непрувильно делаю? Ка ккод запустить на трассировку?
402 Mikeware
 
14.02.13
15:19
(401) поставь точку останова, и запускай в Предприятии
403 Mikeware
 
14.02.13
15:20
(401) желчь - это биология. а у меня - чистая математика...
404 bananan
 
14.02.13
15:27
(402) Сейчас попробую
405 bananan
 
14.02.13
15:29
(404) За поясниние работы с отладчимком - спасибо
406 Ёпрст
 
14.02.13
15:33
Никогда не пользуй объединение ячеек - это фактически смерть для мокселя для больших таблиц.
Заместо этого есть галка "По выделенным столбцам"
407 bananan
 
14.02.13
15:35
(406) Сомневаюсь что в моем случае По выделенным столбацм проходит
У меня задача если в ОДНОМ документе несколько ошибок - то номер документа в объединенных ячейках - для б\лучшей читабельности
408 bananan
 
14.02.13
15:49
Код в результате такой написал:
Процедура Сформировать()
   Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("Таблица");
   Таб.ВывестиСекцию("Шапка");
   Таб.Опции(0,0,Таб.ВысотаТаблицы());
   ОбДок = "Документ.РасходнаяНакладная";
   СчетИтер = 0;
   Пока СчетИтер<1 Цикл                  
       ВыбДок=СоздатьОбъект(ОбДок);
       Если СчетИтер = 0 Тогда
           ОбДок = "Документ.РасходнаяНакладная";
       Иначе
           ОбДок = "Документ.РасходнаяНакладнаяН";
       КонецЕсли;
       ВыбДок=СоздатьОбъект(ОбДок);
       ВыбДок.УстановитьФильтр(1,0);
       ВыбДок.ВыбратьДокументы(ДатаС,ДатаПо);
           иф = 1;
       Пока ВыбДок.ПолучитьДокумент()<>0 Цикл
             Состояние("Перевірка "+ВыбДок+" ...");            
             ТЗ=Разность(ВыбДок);            
             Если ТЗ.КоличествоСтрок()>0 Тогда
                ПечДок = ВыбДок.ТекущийДокумент();
                ТЗ.ВыбратьСтроки();
                Пока ТЗ.ПолучитьСтроку()=1 Цикл
                   ПечОшибка = ТЗ.Ошибка;
                   ПечТовар = ТЗ.Товар;
                   Если ТЗ.Стр <> 0 Тогда
                       ПечНомерСтрокиСОшибкой = ТЗ.Стр;
                   Иначе                        
                       ПечНомерСтрокиСОшибкой = "Усі";
                   КонецЕсли;
                   Если СтрДлина(ПечТовар)=0 Тогда
                       ПечТовар = "!!НОЛЬ!!!";
                   КонецЕсли;
                   Таб.ВывестиСекцию("Документ");
                   ПредНомер = "";
                   ПредНомер = ПечДок.НомерДок;
                   Пока ТЗ.ПолучитьСтроку()=1 Цикл
                       ПечОшибка = ТЗ.Ошибка;
                       ПечТовар = ТЗ.Товар;
                       ПечНомерСтрокиСОшибкой = ТЗ.Стр;
                       Если ПечДок.НомерДок = ПредНомер Тогда
                           Если иф>1 Тогда
                               Обл = Таб.Область(иф, 1, иф-1, 1);
                           Иначе
                               Обл = Таб.Область(иф, 1, иф, 1);
                           КонецЕсли;
                           Сообщить(Обл);
                           Сообщить ("+!!"+иф);
                       КонецЕсли;
                       
                       Сообщить("ПредНомер = "+ПредНомер+" "+иф+"-я итерация НомерДок= "+ПечДок.НомерДок);
                       Если СтрДлина(ТЗ.Ошибка)>0 Тогда
                           Обл = Таб.Область(12+1*иф, 2,(12+1*иф), 2);
                           Обл.ЦветФона(1, 1, 1);
                           Обл.ЦветТекста(125, 125, 125);
                           Таб.ВывестиСекцию("Ошибка");    
                           иф=иф+1;
                       КонецЕсли;
                КонецЦикла;
   
   
                КонецЦикла;
             КонецЕсли;
       КонецЦикла;        
       СчетИтер = СчетИтер + 1;
   КонецЦикла;
   Состояние("Готово!");      
   Таб.ТолькоПросмотр(1);
   Таб.Защита(1);
   Таб.Показать("Негаразд","");      
КонецПроцедуры
Но он ячейки не объединяет!
Опять я чего-топ пропустил... :(
409 bananan
 
14.02.13
16:00
Ау!!! Поиогите!! Я чего-то ничего не понимаю в коде у меня оди\на Сообщить (она сообщает номер итерации -  т.е 1, 2, ...., Н) А в окне вывода вижу:
12.31.-71
12.31.-71
12.31.-71
12.31.-71
12.31.-71
12.31.-71
13.31.-71
20.31.-71
20.31.-71
20.31.-71
20.31.-71
20.31.-71
20.31.-71
20.31.-71
20.31.-71
20.31.-71
21.31.-71
21.31.-71
21.31.-71
21.31.-71
21.31.-71
21.31.-71
21.31.-71
21.31.-71
21.31.-71
21.31.-71
22.31.-71
22.31.-71
22.31.-71
22.31.-71
22.31.-71
22.31.-71
22.31.-71
22.31.-71
22.31.-71
22.31.-71
23.31.-71
10.20.-71
10.20.-71
10.20.-71
10.20.-71
10.20.-71
10.20.-71
10.20.-71
10.20.-71
10.20.-71
10.20.-71
11.20.-71
11.20.-71
410 Ёпрст
 
14.02.13
17:11
Ну как тебе сказать, всё в топку..
На счет "по выделенным", на вот, просвещайся
http://rusfolder.com/35011089
411 bananan
 
14.02.13
17:25
(410) Сейчас посмотрю
Ну вот за что я "люблю" 1С - так это  за непредказуемость...
Код:
Сообщить(иф+"-я итерация");
Выдает:
1
2
3
ну и т.д.
Вопрос: ПОЧЕМУ???
412 bananan
 
14.02.13
17:30
(410) А по поводу примера, какая связь меджду столбцами в примере и строками в задаче?
413 batman69
 
14.02.13
17:39
Отладчик тебе в помощь, смотри в него и медитируй.
414 bananan
 
14.02.13
17:40
(413) иф, - понятно, числовая переменная, а куда делось "-я итерация"?
И чем здесь отладчик поможет???
415 Ёпрст
 
14.02.13
17:43
как бы тебе сказать..попроще..

хню написал в (408) её и имеешь в итоге.
416 Ёпрст
 
14.02.13
17:45
скажи мне по-русски, какую ячейку ты хочешь раскрасить И я так уж и быть напишу тебе как
417 bananan
 
14.02.13
17:49
(416) Какую ячейку? не знаю как и описать, короче в таблицу идут строки в которіх первій столбец - номердокумента
если в документе встречается несколько ошибок - соответственно строк в которой в первом столбе один и то- же номер документа - тоже нескьольо, так вот хотелось бы соседние ячейки где номердокумента одинаковый - объеденить
418 Ёпрст
 
14.02.13
17:51
>>>У меня задача если в ОДНОМ документе несколько ошибок - то номер документа в объединенных ячейках - для б\лучшей читабельности


И нафига ?
Делаешь такой макет и привет:

http://s61.radikal.ru/i172/1302/28/5e53e05b4f60.jpg
419 Ёпрст
 
14.02.13
17:52
У тебя будет выводится так

Документ №123123123
  ошибка вася лох
  ошибка федя даун
 
Документ №234234234
  ошибка вася крут
  ошибка федя хз
420 bananan
 
14.02.13
17:53
(418) А в итоге ячейка в которой ошибка не будет под ячейкой в которой документ?
421 111222333444
 
14.02.13
17:58
"пишу программу на Дельфи, рнр-скрипты, движки для сайтов, а еще довожу ремонт в квартире до путя...." переживаю за заказчиков всего этого
422 bananan
 
14.02.13
17:59
(421) Ах, какой ты сердобольный
423 Ёпрст
 
14.02.13
17:59
(420) будет, а что не устраивает ?

тебе надо в этой же что ли ?
т.е ты хочешь видеть так ?

Документ1 Ошибка Вася
         Ошибка Федя
         Ошибка Бананан
Документ2 Ошибка Вася
         Ошибка Федя
         Ошибка Бананан
424 bananan
 
14.02.13
18:25
(423) Да, хотелось бы видеть именно так
только первая оршибка в следующей строке от документа и в следующем столбце (я уже кажется сообразил как)
425 bananan
 
14.02.13
19:38
Ребята если я к документе обращаюсь так
Док = СоздатьОбъект()...
Как достучаться до поля автор документа? Док.Автор или как?
426 КонецЦикла
 
14.02.13
20:05
Док.Автор - не получилось что ли?