Имя: Пароль:
1C
 
Составной код Характеристики в табличной части.
0 1cNav
 
27.10.22
13:09
Доброго времени суток!
Дано: типовая конфигурация. Клиент хочет в табличной части вывести составную колонку код, то есть если выбрана Характеристика, то в колонке должно быть код Владельца и через дробь код характеристики. Если выбрана только номенклатура, то только код номенклатуры. Одна колонка. Конфигурация типовая, постоянно обновляется, сделать нужно для 20ти документов (ЗаказПокупателя, Поставщику, Приходная, Перемещение и т.п.).
Как такое сделать программно и наименьшими усилиями?
1 PR
 
27.10.22
13:13
(0) Зачем?
2 1cNav
 
27.10.22
13:14
(1)Они привыкли работать по кодам
3 PR
 
27.10.22
13:15
(2) И че
Как твоя колонка им поможет заполнить номенклатуру и характеристику
Опиши процесс
4 SweetaAngel
 
27.10.22
13:17
1. "Изменить форму" и вытащить код характеристики не получается?
2. Напиши расширение
5 1cNav
 
27.10.22
13:18
(3) Менеджеры заполняют документы, им вобщем-то без разницы что покупать и продавать. А вот кладовщиками/логистам эта информация очень важна, т.к. с одним и тем же наименованием может быть много позиций
6 1cNav
 
27.10.22
13:19
(4)п1 Нужно в одной колонке код Номенклатуры или Полный код Характеристики
п2 можно расширение, не принципиально. Вопрос как?
7 SweetaAngel
 
27.10.22
13:20
(5) Если они на каждый приход создают новую номенклатуру/характеристику — скажи что они содомиты-калоеды.

Для этого есть аналитика "Серии".
8 SweetaAngel
 
27.10.22
13:22
(6) > п1 Нужно в одной колонке код Номенклатуры или Полный код Характеристики

Насколько помню - можно. Но через дробь не получится. (6)

> п2 можно расширение, не принципиально.

У тебя принципиально: Конфигурация типовая, постоянно обновляется,

> Вопрос как?

Прыгай — взлетишь.
9 1cNav
 
27.10.22
13:24
(8)Нужно через именно через дробь, через запятую не устраивает
10 1cNav
 
27.10.22
13:25
(7)Частный случай, такое бывает. Конечно они найдут дубли, поэтому и хотят колонку составной код
11 PR
 
27.10.22
13:32
(5) Они по документу или по печатной форме смотрят?
Что мешает сделать две колонки по алгоритму (4)?
12 PR
 
27.10.22
13:33
(9) Почему?
13 1cNav
 
27.10.22
13:36
(11)Конечно им проще открыть документ и посмотреть в документе код позиции.
В типовой и так куча колонок, клиент не хочет загромождать форму
14 1cNav
 
27.10.22
13:37
(12)Так нагляднее, они так привыкли
15 Kassern
 
27.10.22
13:43
(13) Погодите, у вас кладовщики/логисты по документам менеджеров шарятся? Сделайте печатную форму с нужными колонками, эту накладную и передавайте на склад. Если эти колонки нужны лишь узкому кругу юзверов, то сделайте для них АРМ обработкой и выведите, что нужно, чтобы было удобно работать.
16 PR
 
27.10.22
13:44
(13) Ну так пусть дополнительно скроют колонки Номенклатура и Характеристика, количество колонок не изменится
ДБ (с)
17 PR
 
27.10.22
13:45
(14) В смысле привыкли?
Привыкли где?
Зачем ты забрал у них привычную удобную теплую ламповую систему и дал взамен какое-то неудобоваримое говно?
18 PR
 
27.10.22
13:47
(15) Да пиздец уже то, что они от документа пляшут, а не от необработанных остатков в АРМе
По хочу ТС не спец и не может предложить людям правильное поведение
19 1cNav
 
27.10.22
13:51
(15)(16)(17) Уважаемые коллеги, вопрос не в том как не делать, это вобщем-то можно как-то объяснить.

Вопрос: как сделать сабж малыми усилиями? И задачка-то простенькая, добавить колонку и всё.
20 Kassern
 
27.10.22
13:52
(19) Еще->ИзменитьФорму-> добавляете новую колонку с кодом, ненужные скрываете - профит!
21 Kassern
 
27.10.22
13:53
Что-то сложнее, пишите расширение для формы, в зависимости от условий программно изменяете колонки ТЧ.
Но все это костыли, которые сыграют злую шутку через некоторое время.
22 PR
 
27.10.22
13:56
(19) У нас не принято подсказывать, как сделать всякую хрень
Без объяснений зачем делай сам
23 1cNav
 
27.10.22
14:00
(21)>>пишите расширение для формы

На данный момент у меня два решения данной задачи, оба меня не устраивают:
1. Добавляем программно колонки <Номенклатура.Код> и <Характеристика.код>, помещаем их в одну группу, объединяем ячейки. Минус - разделитель запятая, изменить ни как нельзя (?)

2. Добавляем реквизит таблицы формы, заполняем его как нужно, выводим колонку на форму. Делаем всё как нужно, Но корректировок типового кода очень-очень много. Тоже минус
24 Garykom
 
гуру
27.10.22
14:07
(23) Имхо ты неправильно понял задачу
Уверен что они не задумали по этим составным кодам вбивая их (в одно поле) подбирать номенклатуру/характеристику?
25 1cNav
 
27.10.22
14:10
(24)задача такая как описана в (0)
26 PR
 
27.10.22
14:17
(24) Понял?
Не лезь со своими уточнениями
ТС некогда объяснять, срочно суй помидоры в жопу
27 1cNav
 
27.10.22
15:43
(26) да причём тут помидоры???

Я понимаю заказчиков, и они готовы заплатить деньги за простое решение без кастылей.
Вопрос в (0), как создать такую колонку? Просто добавить колонку на форму с простейшей логикой заполнения.

Или 1С такого не умеет?
28 PR
 
27.10.22
15:48
(27) Умеет
29 SweetaAngel
 
27.10.22
15:56
(27) > Просто добавить колонку на форму с простейшей логикой заполнения.

Тебе давно уже сказали: пиши расширение. Конфа останется на поддержке и можно любую логику реализовать.
30 1cNav
 
27.10.22
16:53
(29) по поводу расширений понял, спс
(23) сможете прокомментировать?

Может быть есть еще какой-либо способ просто и красиво это сделать?
31 mistеr
 
27.10.22
17:09
(27) Просто более опытные товарищи смотрят на шаг-два вперед, и спрашивают, что еще пользователи будут делать с этой колонкой, кроме как пялиться на нее.
32 1cNav
 
27.10.22
17:20
(31)На данный момент только информация о коде позиции. Другого функционала не предполагается
33 Йохохо
 
27.10.22
17:54
(32) сортировка
34 SweetaAngel
 
28.10.22
00:55
(0) Начнем с главного вопроса: что за конфигурация?

В ЕРП (а значит в КА, УТ) у Характеристики нет Кода.
35 1cNav
 
28.10.22
11:05
(34)УНФ
36 1cNav
 
28.10.22
12:20
получается 20ть форм грузить в расширение и в каждой корректировка/добавление четырех процедур???

а проще ни как?
37 Kassern
 
28.10.22
12:23
(36) Вы сами пошли этим путем, потакая каждой хотелке юзверов. По факту есть артикул, есть наименование характеристики. Этого должно быть за глаза, чтобы идентифицировать товар. Так же есть ТСД и прочие сканеры, чтобы склад смог быстро идентифицировать товар и выбрать корректный. Для логистов есть свои АРМ, чтобы они могли правильно заказать товар.
38 Kassern
 
28.10.22
12:24
Нужно уметь общаться с заказчиком и предлагать альтернативы, которые будут с меньшей кровью внедрены и принесут больше профита.
39 1cNav
 
28.10.22
12:33
(37)(38)При чём здесь вот это всё?
Вопрос в сабже звучит не о том что посоветовать клиенту и как лучше клиенту жить, какую аппаратуру покупать, как им правильно вести учет, как им нужно оптимизировать процессы, как им обучать кладовщиков и менеджеров для правильного учета.

Вопрос: как реализовать простую задачу в (0) малыми трудозатрами? Или 1С так не умеет?
Если нельзя сделать то что написано в (0) просто, пусть мне гуру скажут что нет просто не получится, это займёт овер 30 часов и нужно будет перекурочить всю конфу, или лепить кастыли в расширениях
40 Kassern
 
28.10.22
12:42
(39) Вы видите лишь одно решение, уже придумали, что нужно будет 20 форм редактировать, чтобы клиент остался доволен, а ему вообще может быть пофиг как вы сделаете, лишь бы бизнес-процессы выполнялись правильно, люди не косячили и оперативно работали. Если вас интересует только реализация по придуманной вами идее, то да, чтобы вывести свои колонки с определенной логикой, придется брать форму в расширение и добавлять эту логику. И так для каждой формы. А потом молиться, что при новом обновлении ваше расширение не пошло по одному месту и не пришлось все эти 20 форм в расширении править.
41 1cNav
 
28.10.22
12:54
(40)так в этом то и вопрос.
Спасибо за Ваше мнение.
если просто задачу решить нельзя, клиент будет решать или ему платить за вот этот вот весь гиморрой с расширениями, или просто клиент скжет: нет, кладовщики проживут и без этого
42 mistеr
 
28.10.22
12:56
(39) Малыми трудозатратами это добавить две колонки рядом, с кодом/артикулом номенклатуры и характеристики. Настройки раскопировать юзерам. Все делается в режиме предприятия.

А ты бы на самом деле выяснил, почему заказчик так цепляется за одну колонку. Может есть какой-то бизнес смысл в этом. А если нет, просто кладовщики "так привыкли", то ничего, привыкнут по-другому.
43 Kassern
 
28.10.22
12:58
(41) Предложите ему свой вариант с меньшей кровью и с большей полезностью для бизнеса. Ведь им эти коды нужны не просто так, а скорее всего для идентификации. Предложите им штрихкодирование, или внятные наименования для характеристик, чтобы по артикулу+имени характеристики было понятно о каком товаре речь.
44 Kassern
 
28.10.22
12:59
(42) А как вы логику пропишите в режиме предприятия из (0) "Если выбрана только номенклатура, то только код номенклатуры"
45 1cNav
 
28.10.22
13:34
(44)Как это делается в режиме предприятия я точно не знаю, да и есть сомнения что такое можно сделать без написания кода
46 1cNav
 
28.10.22
14:34
Скажем так: добавляю колонку код в таб. части документов одной строчкой в общем модуле

        ЭлементФормы = Форма.Элементы.Вставить("ЗапасыНоменклатураКодНав", Тип("ПолеФормы"), ЭлементГруппа);
        ЭлементФормы.Вид = ВидПоляФормы.ПолеВвода;
        ЭлементФормы.ТолькоПросмотр = Истина;
        ЭлементФормы.ПутьКДанным = "Объект.Запасы.Номенклатура.Код";


А может быть есть такая фича типа

        ЭлементФормы.<КакоетоПоле> = "ВЫБОР КОГДА ТыщТыщ ТОГДА Объект.Запасы.Номенклатура.Код ИНАЧЕ Объект.Запасы.Характеристика.Код КОНЕЦ"

47 SweetaAngel
 
29.10.22
10:36
(46) Посмотрел оказалось не все так просто с документом. Это с динамическим списком легко. Проще наверное выводить в печатной форме.

> А может быть есть такая фича типа

Так можно через "условное оформление"


&НаСервере
&После("ПриСозданииНаСервере")
Процедура Расш1_ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    элНовый = Элементы.Вставить("грКод", Тип("ГруппаФормы"), Элементы.Запасы, Элементы.ЗапасыНомерСтроки);
    элНовый.Группировка = ГруппировкаКолонок.ВЯчейке;
    
    ///////////////////////////////////////////////////////////////////////////
    
    элНовый = Элементы.Добавить("элКолонкаКодНом", Тип("ПолеФормы"),  Элементы.грКод);
    элНовый.Вид = ВидПоляФормы.ПолеВвода;
    элНовый.Заголовок = "Код Ном";
    элНовый.ОтображатьВШапке = Ложь;
    элНовый.ПутьКДанным = "Объект.Запасы.Номенклатура.Код";     
    
    ///////////////////////////////////////////////////////////////////////////
    
    элНовый = Элементы.Добавить("элКолонкаКодХар", Тип("ПолеФормы"),  Элементы.грКод );
    элНовый.Вид = ВидПоляФормы.ПолеНадписи;
    элНовый.Заголовок = "Код Хар";
    элНовый.ПутьКДанным = "Объект.Запасы.Характеристика.Код";     
    
    
КонецПроцедуры



&НаСервере
&После("УстановитьУсловноеОформлениеФормы")
Процедура Расш1_УстановитьУсловноеОформлениеФормы()
    
    уфНовый = УсловноеОформление.Элементы.Добавить();
    
    ОтборЭлемента = уфНовый.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Запасы.Характеристика");
    ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Заполнено;

    ПолеЭлемента = уфНовый.Поля.Элементы.Добавить();
    ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных("элКолонкаКодНом");

    уфНовый.Оформление.УстановитьЗначениеПараметра("Отображать",  Ложь );
    
    ///////////////////////////////////////////////////////////////////////////
    
    уфНовый = УсловноеОформление.Элементы.Добавить();
    
    ОтборЭлемента = уфНовый.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Запасы.Характеристика");
    ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;

    ПолеЭлемента = уфНовый.Поля.Элементы.Добавить();
    ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных("элКолонкаКодХар");

    уфНовый.Оформление.УстановитьЗначениеПараметра("Отображать",  Ложь );

КонецПроцедуры
48 RomanYS
 
29.10.22
12:04
(0) Добавляешь колонку в реквизиты формы, обеспечиваешь её заполнение по событиям (при чтении, при записи, при окончании редактирования строки или при изменении реквизитов), выводишь колонку на форму.
В принципе всё делается программно, если есть точка входа, можно даже без захвата формы.
Ошибка? Это не ошибка, это системная функция.