Имя: Пароль:
1C
1С v8
ХэЛп, установка цен номенклатуры
,
0 Бестия
 
11.01.14
22:11
В документе Установка цен номенклатуры хочу сделать кнопочку которая перезаполнит единицу измерения по владельцу в спр. номенклатура, в отладчике все находит, а по окончанию пусто, как записать найденную единицу измерения?
ИндексСтрокиТаблицыЦен = 0;
    Для каждого стр из товары цикл
        ВыборкаЕдиниц = Справочники.ЕдиницыИзмерения.Выбрать(,стр.Номенклатура.Ссылка);
        Если ВыборкаЕдиниц.Следующий() Тогда
            НайденнаяЕдиница = ВыборкаЕдиниц.Ссылка;
            стр.ЕдиницаИзмерения = НайденнаяЕдиница;
            ИндексСтрокиТаблицыЦен = ИндексСтрокиТаблицыЦен + 1;
        КонецЕсли;        
    
конеццикла;
1 shuhard
 
11.01.14
22:19
(0) [  ВыборкаЕдиниц = Справочники.ЕдиницыИзмерения.Выбрать(,стр.Номенклатура.Ссылка);]
ужо..ос
2 Нууф-Нууф
 
11.01.14
22:20
(1) ужо..ос? ты на фото глянь...
3 LehhaK
 
11.01.14
22:20
эм... поди "Записать()"?
4 LehhaK
 
11.01.14
22:21
(2) ягодичную мышцу свело вроде
5 Бестия
 
11.01.14
22:26
оцедура КоманднаяПанельТаблицыТиповЦенУстановитьЕдИзм(Кнопка)
     ИндексСтрокиТаблицыЦен = 0;
    Для каждого стр из товары цикл
        ВыборкаЕдиниц = Справочники.ЕдиницыИзмерения.Выбрать(,стр.Номенклатура.Ссылка);
        Если ВыборкаЕдиниц.Следующий() Тогда
            НайденнаяЕдиница = ВыборкаЕдиниц.Ссылка;
            
            ИндексСтрокиТаблицыЦен = ИндексСтрокиТаблицыЦен + 1;
        КонецЕсли;        
    стр.ЕдиницаИзмерения = НайденнаяЕдиница;
  

    конеццикла;
Записать();    
ничего не помогает((((((
6 Franchiser
 
гуру
11.01.14
22:28
Где перезаполнить а документе или в справочнике? По коды перезаполняешь в документе. Если нажно в справочнике, получи объект потом записать.
7 Бестия
 
11.01.14
22:31
(6) в документе установка цен номенклатуры
8 Franchiser
 
гуру
11.01.14
22:34
Проверь типы в документе. В Ут 2 справочника единиц измерения, может не тот пишешь.
9 Franchiser
 
гуру
11.01.14
22:35
Что в отладчике возвращает стр.единицаизмерения
10 Бестия
 
11.01.14
22:36
(8)в док.ЕдиницаИзмерения - СправочникСсылка.ЕдиницыИзмерения
11 Бестия
 
11.01.14
22:36
(9) находит по номенклатуре едизм в данном случае (пар)
12 Franchiser
 
гуру
11.01.14
22:40
Ут толстый клиент? Может переоткрыть документ?
13 Бестия
 
11.01.14
22:45
УТП тольстый клиент
14 Franchiser
 
гуру
11.01.14
22:46
Пройдись отладчиком до конца, прсмотри что в тч товары в конце.
15 Бестия
 
11.01.14
23:19
(14)Не знаю что случилось но вот так заработало!!!! СПАСИБО!!!!
ИндексСтрокиТаблицыЦен = 0;
    Для каждого стр из товары цикл
        ВыборкаЕдиниц = Справочники.ЕдиницыИзмерения.Выбрать(,стр.Номенклатура.Ссылка);
        Если ВыборкаЕдиниц.Следующий() Тогда
            НайденнаяЕдиница = ВыборкаЕдиниц.Ссылка;
            
            ИндексСтрокиТаблицыЦен = ИндексСтрокиТаблицыЦен + 1;
        КонецЕсли;        
    стр.ЕдиницаИзмерения = НайденнаяЕдиница;
  

    конеццикла;
16 КонецЦикла
 
11.01.14
23:21
А часто, кстати, так бывает: когда смотришь отладчиком - оно сцуко работает.
17 Бестия
 
11.01.14
23:31
а теперь заново не работает и что это за хрень такая?
18 Бестия
 
11.01.14
23:47
ХЭЛП ХЭЛП ХЭЛП ХЭЛП
19 Спящая
 
12.01.14
00:02
я бы все таки после строки
стр.ЕдиницаИзмерения = НайденнаяЕдиница;
поставила
Записать();
20 m-serg74
 
12.01.14
00:09
(19) после каждой строки? :)
21 viktor_vv
 
12.01.14
00:10
Прикол в том что ты меняешь в табличной части, а на форме у тебя как бы ТП с источником таблицей значения. После записать и заново открытия формы перезаполняется тз заново.  После своего цикла перзаполни тз.
22 Спящая
 
12.01.14
00:12
(20) ну......мда, конечно это  не есть гуд.
23 Franchiser
 
гуру
12.01.14
00:14
Попробуй,сохраняя спокойствие сохранить конфигурацию, выполнить обновление иб, затем очень спокойно нажать кнопочку на форме документа установка цен номенклатуры.
24 Franchiser
 
гуру
12.01.14
00:15
Убуедись что изменение вносится в нужную базу и ее же запускаешь в режиме 1с-предприятие.
25 viktor_vv
 
12.01.14
00:16
(21) +
        Если ВыборкаЕдиниц.Следующий() Тогда
            НайденнаяЕдиница = ВыборкаЕдиниц.Ссылка;
            стр.ЕдиницаИзмерения = НайденнаяЕдиница;
            ИндексСтрокиТаблицыЦен = ИндексСтрокиТаблицыЦен + 1;
        КонецЕсли;        
    
конеццикла;
ЗаполнитьТаблицуЦенФормы();

Без записать, может понадобится сначала очистить ее.
26 viktor_vv
 
12.01.14
00:20
Это если правильно интерпретировал твое "не работает" :).
27 m-serg74
 
12.01.14
00:20
(25) +++ потому что таблица на форме <> ТЧ Товары для установки цен номенклатуры
28 m-serg74
 
12.01.14
00:21
+ (27)
ИндексСтрокиТаблицыЦен = ИндексСтрокиТаблицыЦен + 1;

а это ваще не понятно зачем делается
29 viktor_vv
 
12.01.14
00:23
(28) Да, это тоже нафик не надо. Это как раз для ТЗ надо. Хотя в принципе можно не перезаполнять полностью, а по индексу одновременно в цикле и в ТЗ писать новое значение.
30 m-serg74
 
12.01.14
00:25
(29) да если у нее документ уже заполнен Номенклатурой, то вообще не надо трогать этот реквизит, а ТС его кстати и не трогает а просто переменную инкрементирует :) зачем то...
31 viktor_vv
 
12.01.14
00:34
Если ВыборкаЕдиниц.Следующий() Тогда
            НайденнаяЕдиница = ВыборкаЕдиниц.Ссылка;
            стр.ЕдиницаИзмерения = НайденнаяЕдиница;
            НомерСоответствияТекущейКолонки = мСоответствиеТиповЦен[стр.ТипЦен];
            СтрокаТЗ = ТаблицаЦен.Получить(стр.ИндексСтрокиТаблицыЦен) ;
             СтрокаТЗ["единица" + НомерСоответствияТекущейКолонки] = НайденнаяЕдиница;
            СтрокаТЗ
        КонецЕсли;    

как-то так получается. Это если потелепатировать :).
32 viktor_vv
 
12.01.14
00:35
*    
      //   СтрокаТЗ
        КонецЕсли;
33 Franchiser
 
гуру
12.01.14
00:37
(27) ну это ей нужно посмотреть на форме расположена тз или же тч товары. Поэтому я и предложил переоткрывать документ, тогда должно работать после Записать() и переоткрытия.
34 Бестия
 
12.01.14
00:38
(25) ничего не происходит, все как было так и есть
35 m-serg74
 
12.01.14
00:39
(33) ну документо то вроде типовой, и если это так то ТЧ товары живет сам по себе
36 viktor_vv
 
12.01.14
00:40
(34) Там таки надо сначала очистить ТЗ.
Лучше делай (31). И таки расшифруй твое "не работает" :).
(33) Конфу она назвала, там именно так.
37 Franchiser
 
гуру
12.01.14
00:40
Ну в типовых обычно на форме тз, насколько помню как реквизит формы
38 Бестия
 
12.01.14
00:41
(31)ОГРОмное спасибо!!!!!!!!!! Вроде так перезаполнилось, хоть бы не сглазить))))
39 viktor_vv
 
12.01.14
00:44
(38) Теперь главное не моргай, а то вдруг сломается и исчезнет :)).
40 Бестия
 
12.01.14
00:59
(39) буду не дышать))))