Имя: Пароль:
1C
1C 7.7
v7: Выбор дока
0 Erhov_egor
 
24.07.11
09:39
В документе КонтрольАвто в табличной части НомерНакладной из журнала выбираю накладную пропуск,в накладной пропуске содержится несколько документов отгрузка товаров! в контрольАвто в номернакладной не заносится документ а сумма считается!
   Если (НомерНакладной.Вид() = "НакладнаяПропуск") или (НомерНакладной.Вид() = "НакладнаяПропускСыр") Тогда  
       ТЗ = СоздатьОбъект("ТаблицаЗначений");  
       ТЗ.НоваяКолонка("Время1");
       ТЗ.НоваяКолонка("Номер");
       ТЗ.НоваяКолонка("Водитель","Строка");
       ТЗ.НоваяКолонка("МодельАвто");
       ТЗ.НоваяКолонка("Докум");
       ТЗ.НоваяКолонка("Сумма","Число");  
       ДокерТ = НомерНакладной;
       ДокерТ.ВыбратьСтроки();
       Пока ДокерТ.ПолучитьСтроку()=1 Цикл  
           сумм=0;
           сум=0;  
           Су=0;
           Док = СоздатьОбъект("Документ");  
           Док.НайтиДокумент(ДокерТ.Док);    
           Док.ВыбратьСтроки();
           Пока Док.ПолучитьСтроку()=1 Цикл
               Сум = Сум+Док.Всего;  
               Су =Су+Док.Всего;
           КонецЦикла;                                        
           Сумм = Сумм+сум;
           Сумыч=Сумыч+Су;  
           ТЗ.НоваяСтрока();
           ТЗ.Время1 = Врем;
           ТЗ.Номер =ГН;
           ТЗ.Водитель = ФИК;  
           ТЗ.МодельАвто = Мод;
           ТЗ.Докум = Док.ТекущийДокумент();
           ТЗ.Сумма = Сумм;  
       КонецЦикла;    
       Сумыч = Сумм;
конецЕсли;
1 andrewks
 
24.07.11
09:41
а кто такие сумыч и докер? это зверьки такие? или погоняла?
2 Erhov_egor
 
24.07.11
09:44
Сумыч - сумма документа НакладнаяПропуск,ДокерТ-это сам Док
3 KRV
 
24.07.11
09:49
Пятница была позавчера..
(НомерНакладной.Вид() = "НакладнаяПропуск") или (НомерНакладной.Вид() = "НакладнаяПропускСыр")  - улыбныло!
4 Erhov_egor
 
24.07.11
09:50
а что тебе тут не нравится то?
5 andrewks
 
24.07.11
09:51
пока ни черта не понятно. ты говоришь про одно, а код показываешь совершенно про другое
6 Erhov_egor
 
24.07.11
09:55
Есть Документ КонтрольАвто,там в поле НомерНакладной я выбираю в журналеДоков Какой либо документ(Отгрузка товаров,отгрузка сыра,накладная пропуск,накладная пропуск сыр),в накладной пропуск и накладной пропуск сыр внутри документы(отгрузка товаров,отгрузка сыра),если я выбираю документ накладную пропуск,то сначало в строку записывается значения накладной пропуск, а потом создаются новые строки с отгрузкой товаров которые были в накладной пропуск
7 Kookish
 
24.07.11
10:05
Как ты думаешь, чему равен Док.ТекущийДокумент() когда цикл закончился, т. е. Док.ПолучитьСтроку0=%2 = 0?
8 andrewks
 
24.07.11
10:07
короче, я нифига так и не понял.
касательно выложенного кода:
1. СоздатьОбъект в цикле - это моветон
2. ДокерТ.Док неплохо было бы проверять на выбранность
3. нафига такой изврат?
Пока Док.ПолучитьСтроку()=1 Цикл
               Сум = Сум+Док.Всего;  
               Су =Су+Док.Всего;
           КонецЦикла;

достаточно Док.Итог("Всего"); если галка суммирования стоит (а она должна стоять, по логике)
4. вот здесь: ТЗ.Сумма = Сумм; у тебя всегда ноль
9 Erhov_egor
 
24.07.11
10:12
(7)тебе про текущий сказать или про получить строку?
(8)да я туплю,в общем когда я все занес в таблицуЗначений все нормально все значения есть,когда я потом приравниваю таблицузначений в строки дока то номернакладной не пишется пустое значение.а сумма заносится
10 Erhov_egor
 
24.07.11
10:13
//Если (НомерНакладной.Вид() = "НакладнаяПропуск") или (НомерНакладной.Вид() = "НакладнаяПропускСыр") Тогда    
   //    ТЗ.ВыбратьСтроки();
   //    Пока ТЗ.ПолучитьСтроку()=1 Цикл
   //        НоваяСтрока();
   //        ВремяВыезда    = ТЗ.Время1;
   //        ГосНомер       = ТЗ.Номер;
   //        ФИО            = ТЗ.Водитель;
   //        Модель         = ТЗ.МодельАвто;
   //        НомерНакладной = ТЗ.Докум;
   //        Сумма           = ТЗ.Сумма;
   //    КонецЦикла;        
   //КонецЕсли;
11 Kookish
 
24.07.11
10:14
(9) (7)+ Упс, пардон. Сам ступил.
12 Erhov_egor
 
24.07.11
10:14
НомерНакладной(Документ),выбирается из журнала Доков,программно не вносятся?
13 Kookish
 
24.07.11
10:15
(10) НомерНакладной в этом фрагменте что? Документ или поле документа? Почему идентификаторы одинаковые? Или мне это кажется?
14 Erhov_egor
 
24.07.11
10:17
НомерНакладной(тип документ)-поле ввода
15 andrewks
 
24.07.11
10:17
ну ты покажи, как "переносишь"? может, тип не соответствует?
16 Kookish
 
24.07.11
10:17
А это что?
   //        НомерНакладной = ТЗ.Докум;
17 Erhov_egor
 
24.07.11
10:18
(15) см (10)
18 Kookish
 
24.07.11
10:18
(16)+ И почему в цикле? Навевает на мысли, что это колонка табличной части.
19 Erhov_egor
 
24.07.11
10:18
(16)всмысле что?
20 Erhov_egor
 
24.07.11
10:19
(16)ага
21 Erhov_egor
 
24.07.11
10:19
Ой(18) ага
22 Kookish
 
24.07.11
10:19
(20) ИМЯ, блин, ИМЯ, сестра. Оно совпадает с именем поля!!
23 andrewks
 
24.07.11
10:19
тип реквизита ТЧ НомерНакладной проверь уже наконец!
24 Erhov_egor
 
24.07.11
10:21
(23) тип реквизита табличной части документа НомерНакладной(Документ)
25 andrewks
 
24.07.11
10:21
у тебя, что, и на морде такой реквизит есть, что-ли?
26 Kookish
 
24.07.11
10:21
(25) А ты думаешь, что он в первой строчке проверяет?
27 andrewks
 
24.07.11
10:22
+(25) а, нет, не даст.

короче, нифига не понятно

выкладывай мдэшник, если хочешь, а то в воскресенье телепатия не прёт
28 Erhov_egor
 
24.07.11
10:24
подскажите куда кинуть то мд?
29 Erhov_egor
 
24.07.11
10:29
30 Erhov_egor
 
24.07.11
10:31
Документ контрольАвтоНакл
31 Kookish
 
24.07.11
10:34
То есть у тебя в табличной части в одной строке выбирается документ, потом в ЭТОЙ ЖЕ табличной части добавляются еще строки? Мне этот фрагмент неясен:

//Если (НомерНакладной.Вид() = "НакладнаяПропуск") или (НомерНакладной.Вид() = "НакладнаяПропускСыр") Тогда <-------  
   //    ТЗ.ВыбратьСтроки();
   //    Пока ТЗ.ПолучитьСтроку()=1 Цикл
   //        НоваяСтрока();
   //        НомерНакладной = ТЗ.Докум;  <----------
   //        Сумма           = ТЗ.Сумма;
   //    КонецЦикла;        
   //КонецЕсли;
32 Erhov_egor
 
24.07.11
10:34
да,вот я спрашиваю возможно ли это?
33 Kookish
 
24.07.11
10:35
У мну когнитивный диссонанс...
34 Kookish
 
24.07.11
10:41
И главное, зачем? Нельзя как-нибудь более по-человечески таблицу заполнять?
35 Erhov_egor
 
24.07.11
10:43
так будет легче на проходной,а то они долго  будут заполнять этот док,вот представь если в проходной пропуск 15 отгрузок товаров,им легче один док выбрать чем 15
36 Erhov_egor
 
24.07.11
10:47
ну че никто не подскажет мне?
37 Kookish
 
24.07.11
10:47
Ну дак выбирай этот документ в отдельном поле формы. Можно даже еще одно табличное поле забабахать. В одной ТЧ разнородные данные крутить - просто неправильно.
Например, нажимаем кнопку "+", появляется окошко с выбором документов. Или заполняем табличку документами, нужные отмечаем галочкой. Потом заполняем всю таблицу разом.
38 Erhov_egor
 
24.07.11
11:02
так не надо,один док выбрали и все,т.е. в общем нельзя занести документы моим способом?
39 Kookish
 
24.07.11
11:04
(38) Тогда еще проще: на форме поле, в него выбираем нужный документ. При выборе очищаем большую таблицу и заполняем ее. И нечего огород городить.
40 Erhov_egor
 
24.07.11
11:09
так а я че делаю?
41 Kookish
 
24.07.11
11:11
Ты выбираешь документ прямо в строке табличной части, как я понял. Иначе почему сначала документ берется из поля ТЧ НомерНакладной, потом в ТЧ добавляется несколько строк, и в них заполняются разные поля, в том числе поле НомерНакладной.
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс