Имя: Пароль:
1C
 
Ну помогите мне, пожалуйста. Как мне заменить прораммно в карточке ГТД и Ст
0 mulder_mulder
 
03.03.08
11:48
Ну помогите мне, пожалуйста. Как мне заменить прораммно в карточке товара ГТД и Страну, если можно, пример..
Я уже третий день бьюсь, прошлые ответы не помогли.
Все мои попытки приводят к сообщению, что элемент справочника не может быть перепозицирован. Уже появляется желание побится головой о стену.
1 p1l1
 
03.03.08
11:50
Приведите пример вашего кода и документ в котором вы его пробовали запустить
2 mulder_mulder
 
03.03.08
11:56
вот написал процедуру целую.


Процедура поменять_гтд_и_страну(гтд_,страна_,номенкл)
с_гтд = создатьобъект("Справочник.гтд");
с_страна = создатьобъект("Справочник.оксм");

с_гтд.Найтипонаименованию(гтд_);//ищем, и выбираем нужную позицию

if с_гтд.Выбран() > 0 Тогда//если есть

номенкл.НомерГТД = с_гтд.текущийэлемент();//меняем ГТД

endif;
if с_гтд.Выбран() <= 0 Тогда//если_нет

с_гтд.новый();
с_гтд.наименование=гтд_;
с_гтд.комментарий="";
с_гтд.записать();
с_гтд.Найтипонаименованию(гтд_);//выбираем нужную позицию

 if с_гтд.Выбран() > 0 Тогда
 номенкл.НомерГТД = с_гтд.текущийэлемент();//забиваем ГТД

 endif;
endif;

с_страна.Найтипонаименованию(страна_);//ищем, и выбираем нужную позицию

if с_страна.Выбран() > 0 Тогда//если есть

номенкл.странаПроисхождения = с_страна.текущийэлемент();//забиваем страна_ану

endif;
if с_страна.Выбран() <= 0 Тогда//если_нет

с_страна.новый();
с_страна.наименование=страна_;
с_страна.код="";
с_страна.записать();
с_страна.Найтипонаименованию(страна_);//выбираем нужную позицию

if с_страна.Выбран() > 0 Тогда
 номенкл.странаПроисхождения = с_страна.текущийэлемент();//забиваем страна_ану

endif;
endif;
номенкл.записать();
КонецПроцедуры


не работает, выдаёт, что не выбран элемент
Когда прямо в код вставляешь, без процедуры.
результат тот же
3 mulder_mulder
 
03.03.08
11:58
В этой процедуре продуманный код, по добавлению нового значения в списки ГТД и Страны (если нет) По этому такой длинный код
4 mulder_mulder
 
03.03.08
12:01
(2) (3) документ, по заведению товара из выгрузки. Условие такое, что если такой товар в базе уже есть То поменять в уже существующей карточке ГТД и Страну
5 Zmich
 
03.03.08
12:03
(2). ИМХО, ты, скорей всего, передаешь в процедуру не элемент справочника Номенклатура, а его значение.
Используй НайтиЭлемент() в начале процедуры.
6 у лю 427
 
03.03.08
12:02
___|____|____|____|____|__
_|____|____|____|____|____|
___|____|_биться___|____|__
_|____|___здесь_|____|____|
___|____|____|____|____|_
_|____|____|____|____|____|
___|____|____|____|____|___
7 mulder_mulder
 
03.03.08
12:08
(6)Орригинально, но не смешно
8 у лю 427
 
03.03.08
12:09
ГТД в карточке переписывать нельзя - а вдруг товар по предыдущей ГТД еще не кончился?
Тогда данные рвать будет
9 mulder_mulder
 
03.03.08
12:11
А моему главбуху Побарабану. Я ему уже пол недели об этом говорю.
10 mulder_mulder
 
03.03.08
12:11
(8)То есть ей
11 Восточный Парень
 
03.03.08
12:11
с_гтд.Найтипонаименованию(гтд_);//ищем, и выбираем нужную позицию


if с_гтд.Выбран() > 0 Тогда//если есть

Жесть
12 mulder_mulder
 
03.03.08
12:12
(11)А как тогда правильно...
13 Восточный Парень
 
03.03.08
12:45
Если у тебя "гтд_" это элемент справочника, то в твоем случае его искать совсем не надо, а просто присваивать. Если это наименование, то играйся с параметрами "НайтиПоНаименованиею()" и проверяй выполнено или нет.
НУ блин и пиши код либо на русском, либо на английском.
И поставь себе телепат.
14 Джинн
 
03.03.08
12:49
Ты разобрался какой метод списания себестоимости?
15 maxar
 
03.03.08
12:51
Если с_гтд.Найтипонаименованию(гтд_)= 1 Тогда //ищем, и выбираем нужную позицию
//чего то делаем
Иначе
// создаем новый
КонецЕсли;
16 Ёпрст2
 
03.03.08
12:56
(0) Хз чего там тебе надо ....
Процедура поменять_гтд_и_страну(гтд_,страна_,номенкл)
  гтд = СоздатьОбъект("Справочник.Гтд");
  страна = СоздатьОбъект("Справочник.Оксм");
  Спр = СоздатьОбъект("Справочник.Номенклатура");
  Если гтд.НайтиПоНаименованию(гтд_)=0 Тогда
     гтд.Новый();
     гтд.Наименование=гтд_;
     гтд.Комментарий="";
     гтд.Записать();
 КонецЕсли;
 Если страна.НайтиПоНаименованию(страна_)=0
    страна.Новый();
    страна.Наименование=страна_;
    страна.Записать();
 КонецЕсли;

 Спр.СтранаПроисхождения = с_страна.текущийэлемент();//забиваем страна_ану
 Спр.НомерГТД = гтд.ТекущийЭлемент();
 Спр.Записать();
КонецПроцедуры
17 mulder_mulder
 
03.03.08
13:20
(14) Моё начальство плюёт на все законы бухгалтерского ведения, им тупо надо, чтобы вся база подгонялась, под новый товар. Глупо получается, но ничего не поделаешь.
18 Джинн
 
03.03.08
13:27
(17) В третий уже раз спрашиваю - какой метод списания себестоимости выбран. От этого и дальше плясать нужно.
19 mulder_mulder
 
03.03.08
13:29
(13)гтд_ у меня строковый параметр, выдираемый из тхт, файла выгрузки приходника
который сначала ищется,
если (на всякий случай) его нет,
если нет, то записывает как новый параметр, а потом просто выбирает.
Но это не важно.
Мне сейчас надо поменять в уже готовой карточке НАПЛЕВАВ на законы бухгалтерии ГТД и Страну, чтобы мне ни сказали. и чтобы при том не вылезло сообщение о неперепозиированном объекте, и о том, что я якобы не выбрал элемент.
20 mulder_mulder
 
03.03.08
13:34
Можно, лично для меня, пояснить, что такое "метод списания себестоимости"
Я всю свою сознательную жизнь писал в делфи.
Потом, в один прекрасный день, попросили написать обработку в 1С, потом мне просто сели на шею, и сказали, чтобы я дополнил эту АБАРМОТКУ, с чем я сейчас и сижу.
ЗЫ желаю приятно посмеятся, буду рад если мне помогут
21 selenat
 
03.03.08
13:32
(19) ты себе бумажку с ТЗ и подписью ГБ вытребовал? А то ведь потом ты виноват останешся...
22 Джинн
 
03.03.08
13:37
(20) Мдя.... Спроси хотя бы у главбуха, если сам не знаешь где посмотреть.
23 mulder_mulder
 
03.03.08
14:40
(21) Что такое бумажка с Т3 ?

(22) Глав бух говорит, что метод списания товара у него скорее всего имеет вид
"Покупная"
24 Митор
 
03.03.08
14:55
(23) писец главбуха ф Топку, беги с этой фирмы подальше
25 mulder_mulder
 
03.03.08
15:48
(24)Ну то всё хорошо... но тема, есть тема..
26 Митор
 
03.03.08
15:52
(25) ну тебе в (16) вроде ответили уже
27 mulder_mulder
 
03.03.08
15:56
(26)Тогда, спасибо, а то я на работе, а обормотка дома.
Проверить не на чем. :)
28 Ёпрст
 
гуру
03.03.08
16:02
(27) Там не хватает одной строчки кода ...
29 mulder_mulder
 
03.03.08
16:37
(28) Ели не секрет?? каккая строка, а то уменя уже голова в хлам, мысли сбиваются в кучки, а толку не какого...
Скоро буду издавать глухие мычащие звуки, вообще... :)
30 mulder_mulder
 
03.03.08
18:10
(16)не получается, вот что пишет программа:

Вентилятор для корпуса 80*80*25 (питание от материнской платы, 3pin), подшипник
номенкл.Записать();
{Обработка.Загрузка_Товара_ООО_Техника.Форма.Модуль(322)}: Не выбран элемент!
31 Ёпрст
 
гуру
03.03.08
18:11
(30)
Спр.НайтиЭлемент(номенкл);  воткни ... радуйся
32 mulder_mulder
 
03.03.08
18:26
(31)Жаль смалЙков нет, но у меня рот до ушей, наконец-то получилось.
Одно непонятно, зачем передавать папраметр позиции, в другой объект.
если можо было воспользоваться переданным в процедуру.
Например в делфи я так только и поступаю.
Но 1С это другое, ладно, буду теперь учёным, запомню,
Сделал шаг - наделай кучу экземпляров объекта, и передай в них значения собратьев клонов.

Нет, на самом деле, я без ума от счаться. Теперь пусть главбух, пожинает плоды своих желаний ;).
Спасибо всем...
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.