Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2, свеженьких 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Справочник номенклатура установить префиксы по группам 2 страниц V   1 2 >          
bodka Подменю пользователя
сообщение 01.12.11, 16:14
Сообщение #1

Говорящий
***
Группа: Пользователи
Сообщений: 76
Спасибо сказали: 36 раз
Рейтинг: 0

Подскажите пожалуйста, почему не работает этот код?

Процедура ПриУстановкеНовогоКода(СтандартнаяОбработка, Префикс)
    Если Родитель = "Товары"  Тогда
            
    Префикс = "ТОВ";
Иначе
    Префикс = "У";
КонецЕсли;    

    

    

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

pablo Подменю пользователя
сообщение 01.12.11, 16:21
Сообщение #2

Старейшина
********
Группа: Команда (модераторы)
Сообщений: 1116
Из: Одесса-Луганск
Спасибо сказали: 192 раз
Рейтинг: 0

А как Вы определили, что код не работает?
Хотя можно догадаться, что вы ссылку на родителя сравниваете с наименованием родителя


Signature
Правильно поставленный вопрос содержит до 90% ответа.

Спасибо сказали: bodka,

bodka Подменю пользователя
сообщение 01.12.11, 16:27
Сообщение #3

Говорящий
***
Группа: Пользователи
Сообщений: 76
Спасибо сказали: 36 раз
Рейтинг: 0

Цитата(pablo @ 01.12.11, 16:21) *
А как Вы определили, что код не работает?
Хотя можно догадаться, что вы ссылку на родителя сравниваете с наименованием родителя


При создании нового элемента создается с артикулом "У", без разницы в какой группе

Цитата(bodka @ 01.12.11, 16:23) *
При создании нового элемента создается с артикулом "У", без разницы в какой группе


По рукам бы мне дал кто-нибудь... Вот так надо
Процедура ПриУстановкеНовогоКода(СтандартнаяОбработка, Префикс)
            Если Родитель.Наименование = "Товары"  Тогда
    Префикс = "ТОВ";
Иначе
    Префикс = "У";
КонецЕсли;    
КонецПроцедуры

Vofka Подменю пользователя
сообщение 01.12.11, 16:50
Сообщение #4

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4519 раз
Рейтинг: 3641.2

Цитата
По рукам бы мне дал кто-нибудь...

icon_smiley124.gif

Цитата
Вот так надо

Так выше вам так и написали. Почему бы не сказать спасибо человеку.

bodka Подменю пользователя
сообщение 02.12.11, 14:14
Сообщение #5

Говорящий
***
Группа: Пользователи
Сообщений: 76
Спасибо сказали: 36 раз
Рейтинг: 0

Попробовал немного усложнить
Процедура ПриУстановкеНовогоКода(СтандартнаяОбработка, Префикс)
    
        Если Родитель.Наименование = "АвтоВертолетыГаражи" Тогда
        Префикс = "А";
    ИначеЕсли Родитель.Наименование = "АзбукаЛогикаПирамидкиКубикиКаталки" Тогда
        Префикс = "Аз";
    ИначеЕсли Родитель.Наименование = "БытоваяТехника" Тогда
        Префикс = "Б";
    Иначе
        СтандартнаяОбработка = Истина;
        КонецЕсли;
КонецПроцедуры


в 1 условии "АвтоВертолетыГаражи" ставится "Аз"
во 2 и 3 все правильно
Стандартная обработка не срабатывает?
Подскажите пожалуйста в чем подвох, хотя когда было только первые два условия, то все работало.

pablo Подменю пользователя
сообщение 02.12.11, 14:25
Сообщение #6

Старейшина
********
Группа: Команда (модераторы)
Сообщений: 1116
Из: Одесса-Луганск
Спасибо сказали: 192 раз
Рейтинг: 0

Посмотрите в отладчике


Signature
Правильно поставленный вопрос содержит до 90% ответа.

Flexy Подменю пользователя
сообщение 02.12.11, 14:26
Сообщение #7

Танцор с Бубном
Иконка группы
Группа: Местный
Сообщений: 1121
Из: Днепра
Спасибо сказали: 230 раз
Рейтинг: 0

Цитата(bodka @ 02.12.11, 14:14) *
Стандартная обработка не срабатывает?
Подскажите пожалуйста в чем подвох, хотя когда было только первые два условия, то все работало.

Конечно не срабатывает.Она ведь стоит в блоке Иначе.
По условию отрабатывает блок Если.

Спасибо сказали: Домовик,

bodka Подменю пользователя
сообщение 02.12.11, 14:42
Сообщение #8

Говорящий
***
Группа: Пользователи
Сообщений: 76
Спасибо сказали: 36 раз
Рейтинг: 0

Цитата(Flexy @ 02.12.11, 14:26) *
Конечно не срабатывает.Она ведь стоит в блоке Иначе.
По условию отрабатывает блок Если.

А почему тогда не срабатывает 1 блок, если я создаю элемент в этой группе, то ставится "Аз".


Цитата(bodka @ 02.12.11, 14:31) *
А почему тогда не срабатывает 1 блок, если я создаю элемент в этой группе, то ставится "Аз".

Изменил префикс для 1 группы на "Г" и по всем группам стало работать правильно... Вот только стандартная обработка не работает?

Flexy Подменю пользователя
сообщение 02.12.11, 14:48
Сообщение #9

Танцор с Бубном
Иконка группы
Группа: Местный
Сообщений: 1121
Из: Днепра
Спасибо сказали: 230 раз
Рейтинг: 0

Попробуйте так

Процедура ПриУстановкеНовогоКода(СтандартнаяОбработка, Префикс)
    
        Если Родитель.Наименование = "АвтоВертолетыГаражи" Тогда
        Префикс = "А";
    ИначеЕсли Родитель.Наименование = "АзбукаЛогикаПирамидкиКубикиКаталки" Тогда
        Префикс = "Аз";
    ИначеЕсли Родитель.Наименование = "БытоваяТехника" Тогда
        Префикс = "Б";
   КонецЕсли;
КонецПроцедуры

Спасибо сказали: bodka,

logist Подменю пользователя
сообщение 02.12.11, 17:00
Сообщение #10

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Ужас какой... А почему для этих целей нельзя использовать артикул, например?
А что будет если кто-то изменит наименование родителя, не думали? Может логичнее сделать их предопределенными?


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Спасибо сказали: Домовик,

alex040269 Подменю пользователя
сообщение 02.12.11, 17:37
Сообщение #11

Крутой
Иконка группы
Группа: Местный
Сообщений: 1626
Из: Гуляйполе
Спасибо сказали: 236 раз
Рейтинг: 0

Цитата(Flexy @ 02.12.11, 15:48) *
Попробуйте так

Процедура ПриУстановкеНовогоКода(СтандартнаяОбработка, Префикс)
    
        Если Родитель.Наименование = "АвтоВертолетыГаражи" Тогда
        Префикс = "А";
    ИначеЕсли Родитель.Наименование = "АзбукаЛогикаПирамидкиКубикиКаталки" Тогда
        Префикс = "Аз";
    ИначеЕсли Родитель.Наименование = "БытоваяТехника" Тогда
        Префикс = "Б";
   КонецЕсли;
КонецПроцедуры


А если кто-то изменит наименование папки? Что тогда?


Signature
Никогда не бойся делать то, что не умеешь, помни - Ноев ковчег был построен любителем, профессионалы построили Титаник.
ЗиУП

Спасибо сказали: Домовик,

Flexy Подменю пользователя
сообщение 02.12.11, 17:45
Сообщение #12

Танцор с Бубном
Иконка группы
Группа: Местный
Сообщений: 1121
Из: Днепра
Спасибо сказали: 230 раз
Рейтинг: 0

Цитата(alex040269 @ 02.12.11, 17:37) *
А если кто-то изменит наименование папки? Что тогда?

Я не в курсе.Не проверял.
Как вариант добавить
...
Иначе
СтандартнаяОбработка = Ложь;
Сообщить("Группа не найдена");
Возврат;

Или действительно делать группы предопределенными.

Сообщение отредактировал Flexy - 02.12.11, 17:51

sava1 Подменю пользователя
сообщение 02.12.11, 20:50
Сообщение #13

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2688
Из: Проскуров
Спасибо сказали: 681 раз
Рейтинг: 659.7

Позволю себе 5 копеек.
Если уж коряжить в конфе - то проще добавить реквизит Префикс
и устанавливать в коде одной строчкой

Спасибо сказали: Домовик,

Virgo Подменю пользователя
сообщение 02.12.11, 21:05
Сообщение #14

Оратор
*****
Группа: Пользователи
Сообщений: 284
Из: Симферополь-Севастополь
Спасибо сказали: 56 раз
Рейтинг: 0

Лучше создать Регистр сведений "Префиксы справочников" из двух измерений - "Справочник" и "Префикс". Потом в процедуре установки кода выгружать этот регистр в таблицу значений, отсортировать по убыванию уровня справочника и далее перебором строк проверять на принадлежность родителю и т.о. получить префикс.

Спасибо сказали: Домовик,

Flexy Подменю пользователя
сообщение 02.12.11, 21:49
Сообщение #15

Танцор с Бубном
Иконка группы
Группа: Местный
Сообщений: 1121
Из: Днепра
Спасибо сказали: 230 раз
Рейтинг: 0

Цитата(Virgo @ 02.12.11, 21:05) *
Лучше создать Регистр сведений "Префиксы справочников" из двух измерений - "Справочник" и "Префикс". Потом в процедуре установки кода выгружать этот регистр в таблицу значений, отсортировать по убыванию уровня справочника и далее перебором строк проверять на принадлежность родителю и т.о. получить префикс.

Имхо, автору это сложно будет реализовать.

alex040269 Подменю пользователя
сообщение 03.12.11, 20:07
Сообщение #16

Крутой
Иконка группы
Группа: Местный
Сообщений: 1626
Из: Гуляйполе
Спасибо сказали: 236 раз
Рейтинг: 0

Цитата(Flexy @ 02.12.11, 21:49) *
Имхо, автору это сложно будет реализовать.


зато полезно. можно взять на заметку и реализовать в будущем. на крайний случай - предопределенные значения и/или запрет изменения.


Signature
Никогда не бойся делать то, что не умеешь, помни - Ноев ковчег был построен любителем, профессионалы построили Титаник.
ЗиУП

sava1 Подменю пользователя
сообщение 04.12.11, 16:41
Сообщение #17

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2688
Из: Проскуров
Спасибо сказали: 681 раз
Рейтинг: 659.7

создать Регистр сведений "Префиксы справочников" из двух измерений - "Справочник" и "Префикс".

Автору нужно изменять префикс в пределах справочника в зависимости от родителя...

Домовик Подменю пользователя
сообщение 04.12.11, 23:12
Сообщение #18

Ветеран
Иконка группы
Группа: Местный
Сообщений: 975
Из: Киев
Спасибо сказали: 168 раз
Рейтинг: 0

та довідник Номенклатура звісно.


Bodka, уточнюйте у бухгалтерів, для чого їм це, бо побудуєте красивий будинок на піску.

крім того, що Родитель може хтось переіменувати, ще сам елемент (Товар) можна попереміщати по папкам, а якщо будете присвоювати новий префікс в новій папці - конфлікт по унікальності.



Читається алгорим між Найменуванням і префіксом - літери верхнього регістру можна взять. для унікальності щось додумати....+код...чи не поміститься...

Спасибо сказали: bodka,

bodka Подменю пользователя
сообщение 09.12.11, 12:46
Сообщение #19

Говорящий
***
Группа: Пользователи
Сообщений: 76
Спасибо сказали: 36 раз
Рейтинг: 0

Оставил присвоение префикса по родителю...
Запретил создавать и редактировать группы... Пока устраивает...
Процедура ПриЗаписи(Отказ)
    Если ЭтоГруппа Тогда
        Отказ = Истина;
    КонецЕсли;
    
КонецПроцедуры

logist Подменю пользователя
сообщение 09.12.11, 12:57
Сообщение #20

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(bodka @ 09.12.11, 12:46) *
Запретил создавать и редактировать группы... Пока устраивает...

А если надо будет создать или отредактировать группу, Вы полезете временно править конфигурацию?... классное решение ))

Я бы на всякий случай пошел таким путем
Процедура ПриЗаписи(Отказ)
        Отказ = ЭтоГруппа И НЕ РольДоступна("ПолныеПрава");
КонецПроцедуры


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Спасибо сказали: bodka,

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


2 страниц V   1 2 >
Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 18.04.24, 10:06
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!