Имя: Пароль:
1C
1С v8
Изменить Накладную
0 ОффПланктон
 
26.10.12
12:43
Всем добрый день.
помогите плиз, необходимо изменить в накладной 2-ю строчку с помощью внеш. обработки 8.1

мНайденныйДокумент = Документы.ТОРГ_ЗаказПокупателя.НайтиПоНомеру("0001775",Дата("20101125155323"));
   Если мНайденныйДокумент.Пустая()
       Тогда Сообщить("Документ не найден");
   Иначе Сообщить("Документ нашелся " + мНайденныйДокумент.Номер);
   КонецЕсли;


как дальше?
1 GLazNik
 
26.10.12
12:43
(0) пятнично....
2 butterbean
 
26.10.12
12:45
(0) самое смешное, что этот код нафиг не нужен ибо гораздо правильнее документ на форме выбирать
3 Godofsin
 
26.10.12
12:45
(0) Стесняюсь спросить: Зачем???
4 GLazNik
 
26.10.12
12:45
+(2) а лучше зайти в сам документ и там изменить :)
5 ОффПланктон
 
26.10.12
12:51
надо поменять 2-ю строку)
6 Godofsin
 
26.10.12
12:52
(5) То есть ты пишешь обработку, задача которой менять вторую строчку у конкретного документа?
7 del123
 
26.10.12
12:53
(5) В сам документ зайти и изменить религия не позволяет?)
8 ОффПланктон
 
26.10.12
12:53
да ,я же написал, надо внешней.
9 lighto1
 
26.10.12
12:54
Я требую занимательной истории, как такая потребность могла возникнуть!!!! =)
10 GLazNik
 
26.10.12
12:54
(8) гы... типа прав на изменение нету? ну-ну...
11 GLazNik
 
26.10.12
12:55
(9) да ладна... донцову почитай и то веселей
12 ОффПланктон
 
26.10.12
12:55
ясно
13 Godofsin
 
26.10.12
12:56
ИНаХренаЯЭтоДелаю = мНайденныйДокумент.ТвояТЗ.Получить(1);
ИНаХренаЯЭтоДелаю.ТвойРеквизит = КакаятоХерня;
мНайденныйДокумент.Записать();
14 ОффПланктон
 
26.10.12
12:56
это можешь пропустить
15 GLazNik
 
26.10.12
12:57
(13) Только сперва бы объект получить не мешало :)
16 ОффПланктон
 
26.10.12
12:57
просто нужен примерный код для изменения 2-ой строчки проведенного документа
17 ОффПланктон
 
26.10.12
12:57
табличной части
18 ОффПланктон
 
26.10.12
12:58
сперва
НайденныйДокумент = НайденныйДокумент.ПолучитьОбъект();
19 Godofsin
 
26.10.12
12:58
(15) а ну да ))))
мНайденныйДокументОб = мНайденныйДокумент.ПолучитьОбъект();
ИНаХренаЯЭтоДелаю = мНайденныйДокументОб.ТвояТЗ.Получить(1);
ИНаХренаЯЭтоДелаю.ТвойРеквизит = КакаятоХерня;
мНайденныйДокументОб.Записать();
20 Godofsin
 
26.10.12
13:03
мНайденныйДокумент = Документы.ТОРГ_ЗаказПокупателя.НайтиПоНомеру("0001775",Дата("20101125155323"));
   Если мНайденныйДокумент.Пустая()
       Тогда Сообщить("Документ не найден");
             Возврат;
   Иначе Сообщить("Документ нашелся " + мНайденныйДокумент.Номер);

мНайденныйДокументОб = мНайденныйДокумент.ПолучитьОбъект();
ИНаХренаЯЭтоДелаю = мНайденныйДокументОб.ТвояТЗ.Получить(1);
ИНаХренаЯЭтоДелаю.ТвойРеквизит = КакаятоХерня;
мНайденныйДокументОб.Записать();

   КонецЕсли;
21 lighto1
 
26.10.12
13:05
А также не забыть такие полезные процедуры, как ВключитьСтелсРежим() и ПустьГлавБухНикогдаНеУзнаетОМоемКосяке(Аминь)
22 GLazNik
 
26.10.12
13:06
(21) все это в
Попытка
....
Исключение
 НаписатьЗаявлениеНаУвольнение();
КонецПопытки;
23 Godofsin
 
26.10.12
13:06
(21) Возможно, нужна процедура:
БесПалеваПодставитьГлавбуха(Истина);
24 Alex S D
 
26.10.12
13:08
типовую обработку не предлагать?
25 GLazNik
 
26.10.12
13:08
(24) это не спортивно :)
26 ОффПланктон
 
26.10.12
13:09
а может кто-нибудь объяснить саму логику...
27 Alex S D
 
26.10.12
13:09
седня накладную изменишь, завтра родине изменишь??
28 Godofsin
 
26.10.12
13:10
(27) +1 ))))))))
29 Godofsin
 
26.10.12
13:10
(26) Логику чего тебе объяснить? И вообще, купи СП.
30 Alex S D
 
26.10.12
13:12
ищи "Групповая обработка справочников и документов" обычно в конфе имеется в сервисе или операции - обработки
31 ОффПланктон
 
26.10.12
13:19
блин, ошибка

Поле объекта недоступно для записи (Номенклатура)
   СтрокаТабЧасти.Номенклатура = Справочники.Номенклатура.НайтиПоКоду(00021272);
32 Alex S D
 
26.10.12
13:20
(31) давай весь код, напишу как надо
33 ОффПланктон
 
26.10.12
13:21
Перем мНайденныйДокумент;
Процедура КнопкаВыполнитьНажатие(Кнопка)
   мНайденныйДокумент = Документы.ТОРГ_ЗаказПокупателя.НайтиПоНомеру("0001775",Дата("20101125155323"));
   Если мНайденныйДокумент.Пустая()
       Тогда Сообщить("Документ не найден");
   Иначе Сообщить("Документ нашелся " + мНайденныйДокумент.Номер);
   КонецЕсли;
   //НайденныйДокумент = мНайденныйДокумент.ПолучитьОбъект();
   //СтрокаДляИзменения
   //НайденныйДокумент = ;
   //НайденныйДокумент.Записать(РежимЗаписиДокумента.ОтменаПроведения);
   
   НайденныйДокументОб = мНайденныйДокумент.ПолучитьОбъект();
   СтрокаТабЧасти = мНайденныйДокумент.Товары.Получить(1);
   СтрокаТабЧасти.Номенклатура = Справочники.Номенклатура.НайтиПоКоду(00021272);
   НайденныйДокументОб.Записать();
КонецПроцедуры
34 Alex S D
 
26.10.12
13:22
надо:


Перем мНайденныйДокумент;
Процедура КнопкаВыполнитьНажатие(Кнопка)
   мНайденныйДокумент = Документы.ТОРГ_ЗаказПокупателя.НайтиПоНомеру("0001775",Дата("20101125155323"));
   Если мНайденныйДокумент.Пустая()
       Тогда Сообщить("Документ не найден");
   Иначе Сообщить("Документ нашелся " + мНайденныйДокумент.Номер);
   КонецЕсли;
   //НайденныйДокумент = мНайденныйДокумент.ПолучитьОбъект();

   //СтрокаДляИзменения

   //НайденныйДокумент = ;

   //НайденныйДокумент.Записать(РежимЗаписиДокумента.ОтменаПроведения);

   
   НайденныйДокументОб = мНайденныйДокумент.ПолучитьОбъект();
   НайденныйДокументОб.Товары.Получить[1].Номенклатура = Справочники.Номенклатура.НайтиПоКоду(00021272);
   НайденныйДокументОб.Записать();
КонецПроцедуры
35 Alex S D
 
26.10.12
13:22
ой ошибся

НайденныйДокументОб.Товары[1].Номенклатура = Справочники.Номенклатура.НайтиПоКоду(00021272);
36 Alex S D
 
26.10.12
13:23
опять

НайденныйДокументОб.Товары[1].Номенклатура = Справочники.Номенклатура.НайтиПоКоду("00021272");
37 hhhh
 
26.10.12
13:31
(33) нельзя же быть таким рассеянным с улицы бассейной. Тебе дали вариант, а ты его даже не смог скопипастить. В копипасте четыре ошибки.
38 ОффПланктон
 
26.10.12
14:04
все пошло, чуть под корректировал, еще вопрос как ее вывести на экран измененный документ
39 pavelul73
 
26.10.12
14:16
форма.открыть() ?
40 ОффПланктон
 
26.10.12
14:23
добавил после Записать();

НайденныйДокументОб.ПолучитьФорму.Открыть();


выдал ошибку
Поле объекта не обнаружено (ПолучитьФорму)
НайденныйДокументОб.ПолучитьФорму.Открыть();
41 ОффПланктон
 
26.10.12
14:51
Форма = НайденныйДокументОб.ПолучитьФорму();
   Форма.Открыть();

и заработало, всем Спасибо!!!
Ошибка? Это не ошибка, это системная функция.