Имя: Пароль:
1C
1С v8
счет на оплату.
,
0 KukenKvaken
 
19.04.17
06:48
Добрый день.
Есть конфигурация 1с УТ 11.3
в ней есть документ счет на оплату.
в счете в разделе товар заполняется номенклатура из поля "НаименованиеПолное" из справочника номенклатура.
в справочнике номенклатуры есть еще два поля Производитель и Брэнд
вот суть в том что мне нужно автоматически к полному наименованию ИМЕННО в Счете на оплату добавлялась информация из поля производитель.

З,Ы, ответу попрошу попроще для дураков т.к. я в программировании 1с полный нуб.
если нужны куски кода счета на оплату готов выложить.
1 catena
 
19.04.17
07:01
Вот мне всегда казалось, что выполнение подобного тз, а так же полноценная лекция для кого-то, кто "в программировании 1с полный нуб" - достаточно трудозатратная работа, которая должна оплачиваться.
2 AuneM1
 
19.04.17
07:51
(0) Ищешь строку где написано:

ХХХ.ПолноеНаименование и меняешь на

ХХХ.ПолноеНаименование +" " +СокрЛП(Строка(ХХХ.Производитель)) +" " +СокрЛП(Строка(ХХХ.Брэнд))

Или если это в запросе
ХХХ.ПолноеНаименование +" " +Выразить(ХХХ.Производитель как строка(100)) +" " +Выразить(ХХХ.Брэнд как строка(100))
3 KukenKvaken
 
19.04.17
08:51
(2) Есть такая функция
Функция ДанныеДляПечатныхФормСчетаНаОплатуИзвещения(ПараметрыПечати, МассивОбъектов)
в ней есть строки:

ВЫБРАТЬ
    |    Товары.Ссылка КАК Ссылка,
    |    
    |    Товары.ВариантПредставленияНабораВПечатныхФормах КАК ВариантПредставленияНабораВПечатныхФормах,
    |    Товары.ВариантРасчетаЦеныНабора                  КАК ВариантРасчетаЦеныНабора,
    |    
    |    Товары.НоменклатураНабора    КАК НоменклатураНабора,
    |    Товары.ХарактеристикаНабора  КАК ХарактеристикаНабора,
    |    Товары.ЭтоНабор         КАК ЭтоНабор,
    |    Товары.ЭтоКомплектующие КАК ЭтоКомплектующие,
    |    
    |    Товары.НомерСтроки                     КАК НомерСтроки,
    |    Товары.Номенклатура                    КАК Номенклатура,
    |    Товары.Номенклатура.Код                КАК Код,
    |    Товары.Номенклатура.Артикул            КАК Артикул,
    |    Товары.Номенклатура.НаименованиеПолное КАК НаименованиеПолное,

вот вней насколько я понимаю нужно поправить а точнее строку Товары.Номенклатура.НаименованиеПолное
4 KukenKvaken
 
19.04.17
08:54
(2) в расходной накладной я сделал так:
СтруктураПоиска = Новый Структура;
                                    СтруктураПоиска.Вставить("Ссылка", ВыборкаПоСтрокамТЧ.Ссылка);
                                    СтруктураПоиска.Вставить("Склад", ВыборкаПоСтрокамТЧ.Склад);
                                    СтруктураПоиска.Вставить("Номенклатура", ВыборкаПоСтрокамТЧ.Номенклатура.Производитель+);
                                    СтруктураПоиска.Вставить("Характеристика", ВыборкаПоСтрокамТЧ.Характеристика);

СтруктураДанныхТовар = Новый Структура("Товар", Товар);
                                    ОбластьКолонкаТоваров.Параметры.Заполнить(СтруктураДанныхТовар);
                                    ОбластьКолонкаТоваров.Параметры.Товар = Товар +" ("+ ВыборкаПоСтрокамТЧ.Номенклатура.Производитель+")";


СтруктураДанныхТовар = Новый Структура("Товар", Товар);
                                ОбластьКолонкаТоваров.Параметры.Заполнить(СтруктураДанныхТовар);
                                ОбластьКолонкаТоваров.Параметры.Товар = Товар +" ("+ ВыборкаПоСтрокамТЧ.Номенклатура.Производитель+")"; //
5 KukenKvaken
 
19.04.17
08:56
(1) трудозатраты были бы если б глобально много переделывать.
а так нет не много и большую часть я сам переделал. просто не понимаю как мне этот участок переделать.
6 catena
 
19.04.17
09:04
(5)трудозатраты в объяснить.

Чем отличается счет от расходной накладной? Почему вариант из (4) не смогли повторить?
7 KukenKvaken
 
19.04.17
10:32
(6) а что тут объяснять не так много если даже я со своим знанием смог переделать некоторые документы.

расходная накладная выписывается складу для отгрузки.  документов. на ней нет реквизитов и всего прочего.

потому что не знаю как.
реализованы документы по разному
8 KukenKvaken
 
19.04.17
11:21
по идеи должно быть так
Товары.Номенклатура.НаименованиеПолное КАК НаименованиеПолное+" " +Выразить(Номенклатура.Производитель как строка(100)) +",

тока я не уверен.
9 AuneM1
 
19.04.17
12:02
ЗАмени строчку
  Товары.Номенклатура.НаименованиеПолное КАК НаименованиеПолное,

НА

Товары.Номенклатура.ПолноеНаименование +" " +Выразить(Товары.Номенклатура.Производитель как строка(100)) +" " +Выразить(Товары.Номенклатура.Брэнд как строка(100)) КАК НаименованиеПолное,
10 KukenKvaken
 
19.04.17
12:25
(9) не получилось
11 catena
 
19.04.17
12:29
(10)Вот именно поэтому я еще утром сказала, что трудозатратно. Что не получилось? Как не получилось? С какой реакцией не получилось? Ты программист или пациент?
12 KukenKvaken
 
19.04.17
13:07
(11) Пациент.
Не добавляет производителя в счет на оплату.
апсолютно никакой.
13 KukenKvaken
 
19.04.17
13:10
модуль с кодом счет нао плату
https://yadi.sk/i/l9ik2qCr3H8QFz

расходная накладная что я сделал
в столбце товар в скобках берется производитель из заполненной номенклатуры
https://yadi.sk/i/dMqwkXTF3H8QKU

а вот что получается со счетом
https://yadi.sk/i/AJG3mjuc3H8QPs
14 AlvlSpb
 
19.04.17
13:20
(13) Ваш код в https://yadi.sk/i/dMqwkXTF3H8QKU не читается, аброкадабра. Но, если данные берутся из запроса (3), то сделайте так:
Замените строчку "Товары.Номенклатура.НаименованиеПолное КАК НаименованиеПолное" на строчку:

ЗаказКлиентаТовары.Номенклатура.НаименованиеПолное + " Производитель " + ЕСТЬNULL(ЗаказКлиентаТовары.Номенклатура.Производитель.Наименование, " отсутствует") + " Бренд " + ЕСТЬNULL(ЗаказКлиентаТовары.Номенклатура.Марка.Наименование, "отсутствует") КАК НаименованиеПолное

Обычное соединение строк в запросе. ЕСТЬNULL - нужен, если производитель или бренд не указан
15 AlvlSpb
 
19.04.17
13:21
В результате получите строку, что-то типа:
КашаМанная Производитель Мама Бренд МояСемья )))
16 KukenKvaken
 
19.04.17
13:29
(14) {Документ.СчетНаОплатуКлиенту.МодульМенеджера(1640,58)}: Ожидается символ ';'
    |    ЗаказКлиентаТовары.Номенклатура.НаименованиеПолное + "<<?>> Производитель " + ЕСТЬNULL(ЗаказКлиентаТовары.Номенклатура.Производитель.Наименование, " отсутствует") + " Бренд " + ЕСТЬNULL(ЗаказКлиентаТовары.Номенклатура.Марка.Наименование, "отсутствует") КАК НаименованиеПолное (Проверка: Сервер)
{Документ.СчетНаОплатуКлиенту.МодульМенеджера(1640,73)}: Неопознанный оператор
    |    ЗаказКлиентаТовары.Номенклатура.НаименованиеПолное + " Производитель <<?>>" + ЕСТЬNULL(ЗаказКлиентаТовары.Номенклатура.Производитель.Наименование, " отсутствует") + " Бренд " + ЕСТЬNULL(ЗаказКлиентаТовары.Номенклатура.Марка.Наименование, "отсутствует") КАК НаименованиеПолное (Проверка: Сервер)

вот такие ошибки
17 KukenKvaken
 
19.04.17
13:30
(14) модуль с кодом первая ссылка
https://yadi.sk/i/l9ik2qCr3H8QFz
18 Любопытная
 
19.04.17
13:31
а в предприятии шаблон нельзя поправить?
19 catena
 
19.04.17
13:32
(16)Все кавычки замени на двойные. А ведь я просила текст ошибки...
20 KukenKvaken
 
19.04.17
13:33
(18) у меня управление торговлей.
формируется в временной таблице.
поправив шаблон все равно нужно править код
21 KukenKvaken
 
19.04.17
13:34
(19) ошибка появилась при проверке на синтаксис
и с вот этим изменением
ЗаказКлиентаТовары.Номенклатура.НаименованиеПолное + " Производитель " + ЕСТЬNULL(ЗаказКлиентаТовары.Номенклатура.Производитель.Наименование, " отсутствует") + " Бренд " + ЕСТЬNULL(ЗаказКлиентаТовары.Номенклатура.Марка.Наименование, "отсутствует") КАК НаименованиеПолное

с предыдущим ошибки небыло
22 catena
 
19.04.17
13:35
(21)Да не могло не быть, в том листинге, который ты выложил текст запроса не читается. Из-за кавычек.
23 KukenKvaken
 
19.04.17
13:37
(22) это ошибки на решение из 14 поста.
з.ы. после изменения кавычек ни че не изменилось производитель не добавился
24 AlvlSpb
 
19.04.17
13:39
(22) Мне кажется, вы ошибаетесь. Двойные кавычки нужны, если в строку добавляем ссылку, а здесь обычное добавление текста. Двойные кавычки вроде не нужны

Проверил. В консоли работает с одинарными, на двойные выдает ошибку
25 catena
 
19.04.17
13:41
(24)Консоль и текст запроса - немного разные вещи.
26 catena
 
19.04.17
13:42
Вот это не строка уже. Там разрыв на каждой кавычке

|    Товары.Номенклатура.НаименованиеПолное+" " +Выразить(Товары.Номенклатура.Производитель как строка(100)) +" " +Выразить(Товары.Номенклатура.Брэнд как строка(100)) КАК НаименованиеПолное,
27 AlvlSpb
 
19.04.17
14:06
(26) Не буду спорить. Открываю сейчас для редактирования демо УТ проверю. Отпишусь. И, не поймите как ответку))), просто, чтобы не вводить в заблуждение автора, в вашем коде ошибка "Выразить(Товары.Номенклатура.Производитель как строка(100))"
не сработает. преобразование типов в запросе не работает. А Производитель - СпправочникСсылка. Брать надо Производитель.Наименование - это строка. Да и ограничивать строку для соединения не обязательно (конечно, если сумма знаков не превысит 1000)
28 catena
 
19.04.17
14:10
(27)Ну что вы, это не мой код :) Я тут своего кода ни строчки не писала. Это выше насоветовали.
29 KukenKvaken
 
19.04.17
14:20
в итоге вот решение
ВЫБОР
    |        КОГДА Товары.Номенклатура.Производитель = ЗНАЧЕНИЕ(Справочник.Производители.ПустаяСсылка)
    |            ТОГДА Товары.Номенклатура.НаименованиеПолное
    |        ИНАЧЕ Товары.Номенклатура.НаименованиеПолное + "" ("" + (ВЫРАЗИТЬ(Товары.Номенклатура.Производитель.Наименование КАК СТРОКА(100))) + "")""
    |    КОНЕЦ КАК НаименованиеПолное,
30 AlvlSpb
 
19.04.17
14:20
(23) Проверил на демо базе УТ. Все работает. Только то что вы привели в (3) это четвертый пакет, а результат в макет, видно по коду, выводится из 11 пакета. Заменил там Строку Товар.Наименование.НаименованиеПолное на:

Товары.Номенклатура.НаименованиеПолное +","+ " Производитель: " + ЕСТЬNULL(Товары.Номенклатура.Производитель.Наименование, " отсутствует")+ "," + " Бренд: " + ЕСТЬNULL(Товары.Номенклатура.Марка.Наименование, "отсутствует")
Все выводится.
http://s013.radikal.ru/i322/1704/13/c1315225e51a.jpg
и кавычки нужны одинарные
31 KukenKvaken
 
19.04.17
14:22
всем спасибо.
много узнал...
решение нашли.
(30) Ваше решение тоже попробую....
32 catena
 
19.04.17
14:29
(30)Хочу скрин кода с текстом запроса с одинарными кавычками.
33 AlvlSpb
 
19.04.17
17:39
(32) Уезжал на вызов. Пожалуйста:

Написал верхнюю строчку и пошел в конфигуратор к запросу делать скрин. И.... да, вы абсолютно правы. В конструкторе запроса конфигуратора вносил строчку копированием один в один как в моем сообщении. Сейчас хотел сделать скрин и обнаруживаю, что конструктор сам доставил кавычки. Кавычки ДВОЙНЫЕ. Снимаю шляпу )))
34 AlvlSpb
 
19.04.17
17:41
(33) В продолжение. Странно одно. Почему когда я пытался в конструкторе поставить двойные кавычки, конструктор не закрывался выдавая ошибку?
35 AlvlSpb
 
19.04.17
17:47
Поле в конструкторе запроса
http://s019.radikal.ru/i641/1704/c6/b1b44d7cf70c.jpg
Поле в модуле (в самом запросе)
http://s020.radikal.ru/i722/1704/5e/df37185246b5.jpg

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