Имя: Пароль:
 
1C
 
Автоматическое создания формирования Артикула в справочники номенклатура
0 Solovij
 
24.09.18
13:27
Доброго Дня! УПП 1.3 (1.3.110.2) При создании новой номенклатуры нужно, что бы автоматически заполнялся Артикул, написал процедуру, и вставил нее ПередЗаписью

но при сохранении  конфигуратор ругается пишет:
Справочник.Номенклатура.МодульОбъекта(169,79)}: Неопознанный оператор
| Справочник.Номенклатура.Артикул ПОДОБНО ; ";MK[0-9][0-9][0-9][0-9][0-9][0-9]<<?>>"; (Проверка: Толстый клиент (обычное приложение))
Подскажите что я делаю не так


Процедура ЗаполнитьАртикул(ЭтотОбъект);
    
Запрос = Новый Запрос;


Запрос.УстановитьПараметр("MK[0-9][0-9][0-9][0-9][0-9][0-9]");


Выборка = Запрос.Текст="ВЫБРАТЬ  
| Номенклатура.Артикул КАК Артикул
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Справочник.Номенклатура.Артикул ПОДОБНО ; ";MK[0-9][0-9][0-9][0-9][0-9][0-9]";
|УПОРЯДОЧИТЬ ПО
| Артикул УБЫВ";
Запрос.Выполнить().Выбрать();
Если Запрос.Следующий() Тогда
НомерЧислом = Число(Прав(Выборка.Артикул,6))+1;
НовАртикул = "МК"+Формат(НомерЧислом,"ЧЦ=6; ЧВН=; ЧГ=");
ИНАЧЕ
НовАртикул = "МК000001";
  КонецЕсли;
КонецПроцедуры
1 Tatitutu
 
24.09.18
13:32
%% - возьми и будет тебе счастье
2 SweetaAngel
 
24.09.18
13:33
Запрос.УстановитьПараметр("Префикс", "MK"+"%");

Справочник.Номенклатура.Артикул ПОДОБНО &Префикс
3 Solovij
 
24.09.18
16:19
запрос исправил, спасибо за подсказку  теперь при записи пишет

Ошибка при выполнении обработчика - 'ПередЗаписью'
по причине:
{Справочник.Номенклатура.МодульОбъекта(175)}: Метод объекта не обнаружен (Следующий)

Запрос.УстановитьПараметр("Префикс", "MK"+"%");
  
Выборка = Запрос.Текст="ВЫБРАТЬ  
| Номенклатура.Артикул КАК Артикул
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Справочник.Номенклатура.Артикул ПОДОБНО &Префикс
|УПОРЯДОЧИТЬ ПО
| Артикул УБЫВ";
// Запрос.Выполнить().Выбрать();
Выборка = Запрос.Текст="ВЫБРАТЬ";
Если Запрос.Следующий() Тогда  
НомерЧислом = Число(Прав(Выборка.Артикул,8))+1;
НовАртикул = "МК"+Формат(НомерЧислом,"ЧЦ=8; ЧВН=; ЧГ=");
ИНАЧЕ
НовАртикул = "МК00000001";
  КонецЕсли;
4 Cool_Profi
 
24.09.18
16:20
Выборка = Запрос.Текст="ВЫБРАТЬ";

Это что такое? О_о
5 Вафель
 
24.09.18
16:25
(2) А зачем складывать "MK"+"%", когда можно 1 строкой?
6 Solovij
 
24.09.18
16:26
Это что такое? О_о  
Извените  что то я не допонял, что Вы имеете ввиду
7 Solovij
 
24.09.18
16:27
подскажите  как тогда
8 SweetaAngel
 
24.09.18
18:43
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать()
Если Выборка.Следующий() Тогда