Имя: Пароль:
1C
 
Прошу помощи в написании кода: СоздатьНовыйДокумент
Ø (Волшебник 24.01.2024 20:03)
,
0 admin1s
 
23.01.24
22:35
&НаСервере
Процедура СоздатьДокументНаСервере()
    СсылкаНаДокумент = СоздатьНовыйДокумент();
КонецПроцедуры

&НаКлиенте
Функция СоздатьНовыйДокумент(Команда)
    НовыйДокумент = Объект.Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();
       НовыйДокумент.Номер = "111";
       НовыйДокумент.Дата = ТекущаяДата();
       НовыйДокумент.Записать();
       Возврат НовыйДокумент.Ссылка;
    Сообщить("Создан!");
КонецФункции

Ошибка:
{ВнешняяОбработка.ИнтернетЦены.Форма.Форма.Форма(3,21)}: Процедура или функция с указанным именем не определена (СоздатьНовыйДокумент)
    СсылкаНаДокумент = <<?>>СоздатьНовыйДокумент(); (Проверка: Сервер)
1 Инстанс
 
23.01.24
22:36
Это что такое?
2 Инстанс
 
23.01.24
22:37
С сервера вызываешь клиент? А что за Объект.Документы?
3 Garykom
 
гуру
23.01.24
22:37
1. Вызов клиента с сервера низзя
2. Создавать объекты на клиенте низзя
3. "Объект.Документы" низзя
4 Инстанс
 
23.01.24
22:38
Мешанина какая-то.
5 Инстанс
 
23.01.24
22:39
Если тебе надо именно на сервере создать, то и создавай на сервере, используй обработку заполнения по возможности. На клиенте свои фишки. Если интерактивно надо. Ну ты понел.
7 Инстанс
 
23.01.24
22:48
Функция СоздатьНовыйДокумент(Команда)
Откуда формальный параметр Команда? Ты что там вообще делаешь?
8 admin1s
 
23.01.24
22:52
Сорян, прошу помочь джуну ((
Как правильно?
1. Вызов клиента с сервера низзя - вот тут понял.
2. Создавать объекты на клиенте низзя -
3. "Объект.Документы" низзя

за основу брал код отсюда..
В серверном обработчике мы и напишем код, который и будет создавать документ..

&НаСервере
Процедура СоздатьДокументПриходаНаСервере()

    ДокПриход = Документы.ПриходТовара.СоздатьДокумент();

КонецПроцедуры

&НаКлиенте
Процедура СоздатьДокументПрихода(Команда)
    СоздатьДокументПриходаНаСервере();
КонецПроцедуры

https://www.1s-up.ru/programmno-rabotaem-s-dokumentami-v-1s/
9 Волшебник
 
23.01.24
22:53
(8) по ссылке всё правильно, а Вы всё перепутали
10 Инстанс
 
23.01.24
22:55
Если прямо в лоб по-простому, то такой примитив
&НаКлиенте
Процедура СоздатьДокументНаКлиенте(Команда)
	
	ДокСсылка = СоздатьДокументНаСервере();
	
КонецПроцедуры

&НаСервереБезКонтекста
Функция СоздатьДокументНаСервере()
	
	Обт = Документы.ЗаказКлиента.СоздатьДокумент();
	Обт.Дата = ТекущаяДата();
	Обт.Номер = "112";			
	Обт.Записать(РежимЗаписиДокумента.Запись);
	Возврат Обт.Ссылка;
			
КонецФункции
11 admin1s
 
23.01.24
22:56
(10) а как правильно вообще?
12 Волшебник
 
23.01.24
22:57
(11) Возьмите этот программный код и измените там имя документа на своё
13 admin1s
 
23.01.24
23:01
(12) Исправил. Документ не создан!

Код:
&НаКлиенте
Процедура СоздатьДокументНаКлиенте(Команда)
    
    ДокСсылка = СоздатьДокументНаСервере();
    
КонецПроцедуры

&НаСервереБезКонтекста
Функция СоздатьДокументНаСервере()
    
    Обт = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();
    Обт.Дата = ТекущаяДата();
    Обт.Номер = "112";            
    Обт.Записать(РежимЗаписиДокумента.Запись);
    Возврат Обт.Ссылка;
    Сообщить("!!!!");        
КонецФункции
14 Волшебник
 
23.01.24
23:02
(13) Чё пишет система?
15 admin1s
 
23.01.24
23:02
(14) а ничего не пишет ((
16 admin1s
 
23.01.24
23:04
А если добавить Попытка-Исключение - это что-то даст? Только подскажите где добавить на сервере или на клиенте?
17 Волшебник
 
23.01.24
23:05
(16) Скроет ошибки
18 admin1s
 
23.01.24
23:06
И еще вопрос - почему пишем: "&НаСервереБезКонтекста" в данном случае?
19 Волшебник
 
23.01.24
23:06
(15) Добейтесь, чтобы писало.
20 Инстанс
 
23.01.24
23:06
(11) От контекста задачи зависит. Одно дело, когда ты на клиенте создаёшь через ОткрытьФорму, используя параметры и вызывая обработку заполнения. Другое дело — если тебе нужно именно произвольное создание на сервере (типовой ли документ? есть ли там обработка заполнения?). Неизвестно ещё, у тебя самописка голая или БСП? И зачем номер прямо указывать? УстановитьНовыйНомер() можно юзать.
21 Инстанс
 
23.01.24
23:07
А, у тебя типовая по ходу.
22 Инстанс
 
23.01.24
23:08
(18) Можешь писать НаСервере. Не суть важно. Это уже тонкости. Если контекст формы не важен, то можно без контекста.
23 Инстанс
 
23.01.24
23:09
(13) >>Исправил
Могу через эни зайти, если хош
24 admin1s
 
23.01.24
23:09
(19) ошибок нет, как от 1С добиться?
(20) благодарю за полезные советы! УТ - типовая. Про номер понял, позже исправлю, как что-то заработает.
Обт.Номер = УстановитьНовыйНомер(); // так?
25 Инстанс
 
23.01.24
23:10
(16) Зачем тебе это сейчас? Ты отладку вообще ставишь? Остановку по ошибке? Можно попытку-исключение делать по-разному.
26 Инстанс
 
23.01.24
23:10
(24) >>ошибок нет, как от 1С добиться?
Типа документ не создан? Не знаю, есть ли под рукой УТ11.
27 admin1s
 
23.01.24
23:11
(20) выдает ошибку при изменении
с Обт.Номер = "112"; на  
Обт.Номер = УстановитьНовыйНомер();

{ВнешняяОбработка.ИнтернетЦены.Форма.Форма.Форма(28,14)}: Процедура или функция с указанным именем не определена (УстановитьНовыйНомер)
    Обт.Номер = <<?>>УстановитьНовыйНомер();         (Проверка: Сервер)
28 admin1s
 
23.01.24
23:14
(25) отладку ставлю, не останавливает программу ((
(26) документ не создан, ошибок нет.
29 Инстанс
 
23.01.24
23:15
ERP есть
Проверил
https://disk.yandex.ru/d/zh8AHZbyakrXlQ
30 Инстанс
 
23.01.24
23:17
(27) Обт.УстановитьНовыйНомер();
Какой Номер = УстановитьНовыйНомер()
фейспалм
31 Инстанс
 
23.01.24
23:18
Ты где такой метод глобального контекста нашёл. Это метод объекта.
32 admin1s
 
23.01.24
23:22
(29) Да, сработало все кроме
ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Создано!"); - сообщений нет!
33 Инстанс
 
23.01.24
23:24
(32) Странно. Ну можешь просто как ранее Сообщить с параметром. У тебя же не фоновое задание, чтобы надо было ещё выцеплять сообщения. Пиши как прежде.
34 Инстанс
 
23.01.24
23:25
По-простому, так по-простому, без премудростей. А то бывает.
35 admin1s
 
23.01.24
23:32
(34) да, благодарю всем за помощь!

Остальные реквизиты по подобию могу заполнить?! В колонке "ВидЦен":
Наименование/Оптовая
Статус/Действует
Валюта/Рубль
36 Инстанс
 
23.01.24
23:33
(35) My pleasure. Это очень сложный документ так-то. Там те ещё дебри.
37 admin1s
 
23.01.24
23:35
(36) где можно информацию почерпнуть по документу? Заранее благодарен!
38 Инстанс
 
23.01.24
23:35
Но наверное в плане интерактивщины более. Давно им не забавлялся. Так-то попробуй. Да, ВидыЦен, Товары.
39 admin1s
 
23.01.24
23:37
(38)Но наверное в плане интерактивщины более - что имели ввиду?

Попробую уже завтра, отпишусь...
40 Инстанс
 
23.01.24
23:38
(37) Тебе же провести надо по регистру? Ну где, где. В модуле менеджера наверно.
41 Инстанс
 
23.01.24
23:39
(39) Да разные задачи бывают. Тебе надо просто цены заполнить? Ну и заполняй табличные части. В модуле менеджера текст запроса должен быть, если что.
42 Волшебник
 
24.01.24
00:01
(32) У Вас сообщение после Возврат. Там уже ничего не выполняется
43 ЖНЕЦ
 
24.01.24
00:10
Спасибо ! Спасибо  ! Спасибо тебе, что посоветовал этот форум!

Это просто чудо. Я счастлив!  
Раньше целыми днями смотрел , как - деревья растут
А теперь - такая ДВИЖУХА !
44 Волшебник
 
24.01.24
00:15
(43) Всё суетитесь?...
45 admin1s
 
24.01.24
19:56
Документ создан, подскажите, это нормально что реквизит документа: "Номер в течении дня" в двух созданных документах имеют номера: 8 357 и 82 420, при том что БД тестовая, никто в ней не работает!?
46 Волшебник
 
24.01.24
20:02
(45) В тестовой БД всё нормально.