Имя: Пароль:
1C
1С v8
Доработка кода ввода на основании (расширение)
0 anton54575
 
13.11.21
15:15
Делаю расширение ввод на основании счета от поставщика

Создал общий модуль

&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
СтрДанные = Новый Структура("Основание", ПараметрКоманды);
ПараметрыФормы = Новый Структура("ЗначенияЗаполнения", СтрДанные);
ОткрытьФорму("Документ.СчетНаОплатуПоставщика.ФормаОбъекта", ПараметрыФормы, ПараметрыВыполненияКоманды.Источник, ПараметрыВыполненияКоманды.Уникальность, ПараметрыВыполненияКоманды.Окно, ПараметрыВыполненияКоманды.НавигационнаяСсылка);

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

Создал процедуру в документе

&После("ОбработкаЗаполнения")
Процедура ЕВ_ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
    Если ТипЗнч(ДанныеЗаполнения) = Тип("Структура") Тогда
        Если ДанныеЗаполнения.Свойство("Основание") Тогда
            Если ТипЗнч(ДанныеЗаполнения.Основание) = Тип("ДокументСсылка.СчетНаОплатуПокупателю") Тогда
                ЗаполнитьПоСчетуПокупателю(ДанныеЗаполнения.Основание);
            КонецЕсли;
        КонецЕсли;
    КонецЕсли;

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

Собственно все работает, но вопрос вот в чем.

Вопрос:

При автоматическом подставлении реквизитов при вводе на основании мне нужно значение подставления реквизита "Цена" заменить значением добавленного в СчетНаОплатуПоставщика реквизита "ЦенаПоставщика".

В конструкторе запросов все делается и выглядит это следующим образом и работает.

НоваяСтрока.Цена = ТекСтрокаТовары.ЦенаПоставщика;

Но в расширениях конструкторы запросов не работают и хотелось бы узнать как это прописать в процедуре.

Как сделать это в написанной здесь ОбработкеЗаполнения? Что нужно прописать?
1 Droning1C
 
13.11.21
15:18
Но в расширениях конструкторы запросов не работают и хотелось бы узнать как это прописать в процедуре.  - конструктор запросов в расширении работает, но видит только контекст расширения.
2 Droning1C
 
13.11.21
15:19
Если нужно изменить запрос в расширении и не хочется заимствовать из конфигурации лишнего, то открой в пользовательском режиме консоль, напиши запрос там и перенеси текст запроса в код расширения.
3 hhhh
 
13.11.21
15:20
(0) руками пропиши в запросе, или в коде. Это же одна строка, вот нафига тебе, чтобы добавить одну строчку, нужен конструктор?
4 Droning1C
 
13.11.21
15:20
ЗаполнитьПоСчетуПокупателю(ДанныеЗаполнения.Основание);  - ты это скопировал из уже существующей обработки заполнения того же документа?
5 Droning1C
 
13.11.21
15:21
(3) про это я даже говорить не стал))
6 серый КТУЛХУ
 
13.11.21
15:23
(2): консоль дает не код, а текст для конструктора. а конструктор в конфигураторе на такой текст даст ошибку и не сохранит.
или как ты имел ввиду? копирнуть в код и потом тупо вертикальные черточки самому расставлять? а ты видел ерп-шеые запросы по нескольку сотен строк?
7 серый КТУЛХУ
 
13.11.21
15:24
*даст ошибку и не перенесет в код
8 Мимохожий Однако
 
13.11.21
17:25
(6) Да. Вставляешь текст и потом чёрточки. Но уже есть консоли, в которых можно текст запроса скопировать в память и при вставке чёрточки уже на месте.
9 серый КТУЛХУ
 
13.11.21
18:17
(8): не видел таких консолей.
а с табуляциями+черточками уже приходилось намахаться - не фонтан это при наличии несколькосотстрочных запросов...
10 Droning1C
 
13.11.21
20:42
(9) То что ты их не видел, не значит, что их нет   https://www.youtube.com/watch?v=EHX7NZS8zAI
11 Ненавижу 1С
 
гуру
13.11.21
21:02
Пишу текст запроса с помощью конструктора во внешней обработки. Вставляю готовый в расширение
12 серый КТУЛХУ
 
13.11.21
21:06
(10): по твоей ссылке такой консоли тоже нет.
(11): и махаешься с добавлением табуляций и вертикальных черточек? так об этом уже сказано выше.
13 Ненавижу 1С
 
гуру
13.11.21
21:21
(12) зачем махаюсь? Вот у меня получилась в модуле внешней обработки строковая константа - текст запроса. С кавычками и вертикальными черточками. Вот её в нужное место и переношу.
14 Droning1C
 
13.11.21
22:14
15 Droning1C
 
13.11.21
22:15
16 Droning1C
 
13.11.21
22:16
(12) а при желании можно любую удобную лично тебе консоль доработать таким образом
17 AlvlSpb
 
13.11.21
22:22
(9) Правильно сказали, если нет у тебя не значит что нет вообще
https://a.radikal.ru/a39/2111/67/f948a6cfe5f1.jpg
https://d.radikal.ru/d38/2111/b2/9a05447bcd67.jpg
18 серый КТУЛХУ
 
13.11.21
22:32
(17): не значит, я в курсе. за картинки - спасибо, но они в смысле ответа - совершенно бесполезны.
(14): о, ИР = Ок, спасибо
(15): см нету.
19 Droning1C
 
13.11.21
22:41
(18) https://ibb.co/y0Pzb6f есть
20 Droning1C
 
13.11.21
22:46
21 серый КТУЛХУ
 
13.11.21
23:00
(19),(20): еще раз. по слогам.
см(!!!!!) нету
(расшифровка: у меня на скачивание по приведенной тобой ссылке).
22 acht
 
13.11.21
23:21
(9) https://ibb.co/xgVB6Mr
Стандартная кнопка конфигуратора
23 серый КТУЛХУ
 
13.11.21
23:36
(22): о она не дефолтная добавлять надо. спасибо.
(а есть еще дефолтная на ту же тему - запрос из конструктора в код загнать - чтобы кавычки заменить на парные в тексте в коде?)))
24 серый КТУЛХУ
 
13.11.21
23:41
(23)+: "не дефолтная" - в смысле https://ibb.co/y6rjkxw
25 acht
 
13.11.21
23:42
26 серый КТУЛХУ
 
13.11.21
23:45
(26): о, точно, забыл что там "в блоке" можно ограничить.
(костыли - они такие костыли, да. но палюбэ - спасибо!)
27 Droning1C
 
14.11.21
00:05
(26) тяжелый ты человек, однако. По итогу автору поста(явно новичку) мы толком не помогли, зато в 20ти ответах рассказали человеку, зареганному на сайте 14 лет то, что он уже давно должен был знать.
28 серый КТУЛХУ
 
14.11.21
00:31
(27): я тебя удивлю. я семерочник. с самого е начала ещё. даже с шестерки.
в восьмерке начал ковыряться немногим более полутора лет назад - и полтора года назад получил неслабый тормоз в этом, поймав тяжелый инфаркт (с хронической сердечной недостаточностью вследствие).
а так-то я еще больше 14-ти лет, с т1с еще (если ты помнишь что это такое).
ну и по итогам. мне - "человеку, который" (и т.д) - не "рассказали... что уже давно должен знать". но показали один костыль(!) о котором я не знал (спасибо, acht) и напомнив о втором костыле(!) (спасибо, acht). ну и от тебя одно напоминание (про ир, спасибо), и одна бесполезная для меня ссылка (см. (18)+(21)).
29 acht
 
14.11.21
00:37
(28) Беееедненький...
30 Droning1C
 
14.11.21
00:48
(28) пошли отдыхать. ну ее, эту 1ску.
31 hhhh
 
14.11.21
01:18
(28) все-таки прикинь, добавить вертикальные черточки хоть в 1000 хоть в 10000 строчек можно, нажав 2-3 кнопки.
32 серый КТУЛХУ
 
14.11.21
01:37
(29): и?
(30): та да, пошли, ну её до завтра.
(31): одна кнопка, см.(22), уже выяснили про этот костыль.
33 hhhh
 
14.11.21
01:49
(32) почему новый1? что за хрень? Не понял, что в (22). Просто в тексте модуля или тексте запроса нажимаешь Текст-Блок и там есть Добавить комментарий, убрать комментарий, добавить перенос строки, убрать перенос строки.
34 ДедМорроз
 
14.11.21
12:44
Если вам и консоль не помогает и вручную не пишется.
То,открываем внешнюю обработку и пишем код с запросом в ней,а потом переносим в рамширение.

Только нужно понимать,что расширение специально показывает то,что в нем есть для того,стобы при изменении заимствованного сразу сказать,что расширение неприменимо,чем потом ловить ошибки.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший