Имя: Пароль:
1C
1C 7.7
v7: новая графа в РеестрДокументов
,
0 няша
 
12.03.12
12:46
Всем привет..такой вопрос: сделал новую графу в Реестре документов, чтоб, помимо суммы, еще и количество выводило - как сделать, чтоб он брал инфу с документа реализации!?
как вы поняли, я в этом деле новичок, поэтому поможет любая инфа

СПАСИБО!

П.с. кто знает, что может означать "#Ч10.3."? в таблице выражение "ПечКоличествоБазовые #Ч10.3."
1 Aleksey
 
12.03.12
12:47
Как всё запущено ...
2 Злопчинский
 
12.03.12
12:49
с решеткой - это значит форматирование результат вывода, аналогично функции Формат()
3 Злопчинский
 
12.03.12
12:50
(0) количество чего? если в одно строке реализации - метры погонные, а во вторйо строке - штуки - колво чего получится..?
4 aka AMIGO
 
12.03.12
12:52
для количества макет формулы может быть такой: ТекущийДокумент().Итог("Количество");
и в самую точку (3) :)
5 Mikeware
 
12.03.12
12:53
(3) "полтора метра колючей проволоки"?
6 Mikeware
 
12.03.12
12:54
(0) это называется не "новичок"....
7 aka AMIGO
 
12.03.12
12:55
(5)а "поллитра" не встречал? :)
8 Злопчинский
 
12.03.12
12:56
(4) не взлетит. ибо при получении реестра напимер по выпискам получишь синтакисечкскую ошибку типа нет такого реквизита...
9 Ёпрст
 
12.03.12
12:58
(4) это полный ПЭ такое советовать:
1.в документах может отсутствовать реквизит Количество в табличной части это раз
на реквизите может не стоять итог по колонке, это два,
Ну и самое главное - товар может быть в разных единицах измерения в табличной части, например в штуках и коробках..
И Итог("Количество") покажет радугу.
10 Mikeware
 
12.03.12
12:59
(9) "радугу" - это в смысле символ?
11 Ranger_83
 
12.03.12
13:00
(9)Сразу видно человек не один раз наступил на грабли :)
12 Ranger_83
 
12.03.12
13:02
(10)Радуга-это полосочка,что под твоим ником на этом форуме :)
13 Mikeware
 
12.03.12
13:02
(11) вряд ли. По крайней мере, описанное - это не грабли.
14 Mikeware
 
12.03.12
13:03
(12) вряд ли. ибо порядок цветов не тот....
15 Ranger_83
 
12.03.12
13:04
(13)А что есть грабли тогда в твоем понимании?
В моем грабли-это родители опыта:)
16 Ranger_83
 
12.03.12
13:07
Кстати,интересно почему спектр полоски под ником не соответствует спектру разложения белого цвета?
17 aka AMIGO
 
12.03.12
13:11
(8)знаю я.. ни разу не разбирал стандартный реестр, что, к примеру в ТиСе.
просто предположил..
кстати, реестр должен быть разный для разных журналов..
18 aka AMIGO
 
12.03.12
13:14
Если Найти(ТекущийДокумент().Вид(),"Реализация")>0 Тогда
ИтогКолва = .. типа как в (4)
Иначе
ИтогКолва=0;
КонецЕсли;
19 aka AMIGO
 
12.03.12
13:17
Да, и не обязательно это "ТекущийДокумент()" - надо разбирать то место кода в реестре, где присваивается имя обрабатываемому документу
20 няша
 
12.03.12
13:19
(3) количество - метров квадратных. в документе товар, измеряемый только в кв.метрах, т.е. есть ткань 1 шт(рулон) 2 метра в ширину и 15 метров в длину = 30 метрю кв. ставлю просто баз. ед. - квадр. метры, а основную ед. - шт и он автоматически считает квадратные метры...
(6) м.б. =(
(9) 1.в документах может отсутствовать реквизит Количество в табличной части это раз - не, не отсутствует. Есть количество базовые - кв.метр., и количество основное - это шт. И итог стоит
21 няша
 
12.03.12
13:25
(4) не расскажете подробней, как это в модуле прописать ?
22 няша
 
12.03.12
13:26
И еще - почему у меня радуги нет под ником? оО  =(
23 Mikeware
 
12.03.12
13:26
(15) грабли - это  неожиданный эффект. а тут - вполне ожидаемый.
24 aka AMIGO
 
12.03.12
13:27
(20)у тебя ТиС?
тогда
ТвояПеременнаяВГрафеКолво=0;
Если Найти(Док.Вид,"Реализация")>0 Тогда
ТвояПеременнаяВГрафеКолво=Док.Итог("Количество");
КонецЕсли;
Таб.ВывестиСекцию("Докум");
25 няша
 
12.03.12
13:28
(24) да, 944 релиз
26 aka AMIGO
 
12.03.12
13:28
+24 у меня это строка 432Модуля формы Отчета РеестрДокументов.
27 Mikeware
 
12.03.12
13:29
(20) по докуметы, в которых нет товара вообще (не говоря уж о том, что может быть товар, но может не быть количества) - слышал? например, ПКО/РКО...
28 aka AMIGO
 
12.03.12
13:35
ТвояПеременнаяВГрафеКолво=0;
//забыл про скобки в .Вид() !!
Если Найти(Док.Вид(),"Реализация")>0 Тогда
ТвояПеременнаяВГрафеКолво=Док.Итог("Количество");
КонецЕсли;
Таб.ВывестиСекцию("Докум");
29 няша
 
12.03.12
13:39
(26)
   Таб.Опции(0, 0, 7, 0, "РеестрДокументов", "РеестрДокументов");
   Таб.ТолькоПросмотр(1);
   Таб.ОбластьПечати(2);                
   Если глПолучитьПолномочие("РазрешитьРедактированиеТаблиц") = 0 Тогда
       Таб.Защита(1);

последняя - это 432 строка у меня

(28) выдает ошибку:
Если Найти(Док<<?>>.Вид(),"Реализация")>0 Тогда
{Отчет.РеестрДокументов.Форма.Модуль(445)}: Переменная не определена (Док)
ТвояПеременнаяВГрафеКолво=Док<<?>>.Итог("Количество");
{Отчет.РеестрДокументов.Форма.Модуль(446)}: Переменная не определена (Док)
<<?>>Процедура ПриОткрытии()    
{Отчет.РеестрДокументов.Форма.Модуль(455)}: Определения процедур и функций должны размещаться перед операторами основной программы
При проверке модуля обнаружены синтаксические ошибки!
30 няша
 
12.03.12
13:42
(27) меня интересует только реализация..приходники и расходники в реестр не попадают
31 aka AMIGO
 
12.03.12
13:43
(29)понятно!



ищи в Процедуре Сформировать() строку Таб.ВывестиСекцию("Докум"); (у меня она -432!, у тебя будет другая..)
перед этой строкой вставь

ТвояПеременнаяВГрафеКолво=0;
//забыл про скобки в .Вид() !!

Если Найти(Док.Вид(),"Реализация")>0 Тогда
ТвояПеременнаяВГрафеКолво=Док.Итог("Количество");
КонецЕсли;

только замени ""ТвояПеременнаяВГрафеКолво"" на то имя, которое ты поставил в ячейке твоей новой графы.
32 няша
 
12.03.12
14:23
(31) Спасибо огромное, все получилось!!
Только "Количество" заменил на "КоличествоБазовое", чтоб кв.метры выводил.

Может подскажет кто литературу каку-нибудь, чтоб алгоритмы подучить, разобраться хоть немного в языке 1с? %)
33 aka AMIGO
 
12.03.12
14:25
34 няша
 
14.03.12
17:38
(29) Может подскажете еще, как единицы измерения прописать !?
Пробую:
       ПечЕдиницаИзмерения = 0;                                                                            
       Если Найти(Док.Вид(),"Реализация")>0 Тогда
           ПечЕдиницаИзмерения = Док.ЕдИзм(Номенклатура.Единица.ОКЕИ.Наименование);
       КонецЕсли;

Но выдает:
ПечЕдиницаИзмерения = Док.ЕдИзм(Номенклатура<<?>>.Единица.ОКЕИ.Наименование);
{Отчет.РеестрДокументов.Форма.Модуль(383)}: Переменная не определена (Номенклатура)
При проверке модуля обнаружены синтаксические ошибки!
35 Mikeware
 
14.03.12
17:42
(34) Открой для себя отладчик.
36 няша
 
14.03.12
17:57
(34) да, знать бы, как он работает %)
а вообще, мне в 1с еще много что предстоит для себя открыть :)
37 zak555
 
14.03.12
18:01
> Док.ЕдИзм(Номенклатура<<?>>.Единица.ОКЕИ.Наименование)


ЕдИзм - это экспортная функция модуля менеджера/объекта ?
38 Deon
 
14.03.12
18:01
(36) Золотые слова!
39 няша
 
14.03.12
18:11
(37) судя по всему нет..я сомневаюсь, что там д.б. ЕдИзм, пробовал Номенклатура прописывать, но все никак
Проблема в том, что я не знаю, как сделать ссылку на ед. изм., которые в реализации (все товары в документе измеряются в одной ед. изм. - либо м2, либо кг)
40 Ёпрст
 
14.03.12
18:13
(39)
>>>все товары в документе измеряются в одной ед. изм

какая наивность
впрочем, она с временем проходит.
41 няша
 
14.03.12
18:17
(39)  не, не наивность..работаю на производстве. выпускают тут 2 вида товара. на каждый заключается отдельный контракт, соответственно, в документе реализации будут либо ткань (м2), либо нити (кг)
42 няша
 
14.03.12
18:34
нуу же, народ..хоть какие-нибудь подсказки
знаю сумму документа можно взять из глоб.модуля
Сумма = глСуммаДокументаВЖурнале(Док.ТекущийДокумент()

а как ед. измерения прописывать %)
43 DimRom
 
14.03.12
20:04
выбираем первую строку
Док.ПолучитьСтрокуПоНомеру(1)
44 няша
 
15.03.12
12:01
Сделал так:


       ТаблицаДокумента = СоздатьОбъект("ТаблицаЗначений");                                        
       Док.ВыгрузитьТабличнуюЧасть(ТаблицаДокумента);                                              
       ПечЕдиницаИзмерения = " ";                                                                  
       Если Найти(Док.Вид(),"Реализация")>0 Тогда                                                  
           ПечЕдиницаИзмерения = ТаблицаДокумента.Номенклатура.БазоваяЕдиница;                  
       
       КонецЕсли;
//вроде заработало