• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Преобразование типов из строки в С.Номенклатура

  • Автор темы WildAnther
  • Дата начала
W

WildAnther

Наверника найдутся те кто обгадят тему мол нубо тема. с такими вопросами да к бабушки бы... Ну надеюсь найдутся те кто помогут, зарание спасибо,
Собственно суть проблемы:
Тащу данные из экселя а именно заказ из магазин в 3 колонки Номер Товар Кол-во. Всё просто в общем то.
Делаю в отдельной обработке, имеется соответственно таблица в 3 колонки, аналогичная.
Если Товар Тип Строка то всё ровно.. но меня это не устраивает нужно чтобы в дальнейшем у меня было Тип С.Номенклатура.
Данные из обработки попадают в док-т ЗаказМагазина и там вот уже надо чтобы всё ровненько было с С.Номенклатура и т.д.

1С 8.1
УТ 10.3
П.С. Поиском пользовался.
П.С.С не надо камней, я и так знаю что я не гуру.
П.С.С.С. =) спасибо.
 
G

gorlanovmax

Если у тебя Товар - это код товара в 1С Тогда так:

Спр=СоздатьОбъект("Справочник.Номенклатура");
Если Спр.НайтиПоКоду(СокрЛП(Товар),0)=1 Тогда
ТоварВОбработке=Спр.ТекущийЭлемент();
КонецЕсли;

Если у тебя Товар - это Текстовое название, тогда так:

Спр=СоздатьОбъект("Справочник.Номенклатура");
Если Спр.НайтиПоНаименованию(СокрЛП(Товар),0)=1 Тогда
ТоварВОбработке=Спр.ТекущийЭлемент();
КонецЕсли;

Примерно так
 
W

WildAnther

У меня Товар это текст

И если я правильно понял то что относительно текстового названия:
Создаст новую номенклатуру если нету такой и потом присвоет уже товару в обработке номенклатуру из справочника?

Вот процедура добавления именно уже в документ ЗаказИзМагазина
Код:
Процедура СозданиеДокЗаказИзМагазина ()
ДокЗакИзМагазина = Документы.ЗаказИзМагазина.СоздатьДокумент();
ДокЗакИзМагазина.Дата = ТекущаяДата();
ДокЗакИзМагазина.Магазин = Магазин;	
ДокЗакИзМагазина.Продавец = Продавец;

Для каждого СтрокаДанныхМагазина из ДанныеМагазина цикл 	
ЗаполнитьЗначенияСвойств(ДокЗакИзМагазина.ПереченьТовара.Добавить(), СтрокаДанныхМагазина);
ДокЗакИзМагазина.Записать();	
КонецЦикла;

Форма = ДокЗакИзМагазина.ПолучитьФорму();
Форма.Открыть();

КонецПроцедуры
сюда я как понимаю никак надо до это все исправлять
например когда формируем таблицу обработки.
 
U

unknown181538

Т.е. поиск будет осуществляться по наименованию? Решили ли вы проблему синхронизации? Т.е. не будет ли у вас такого, чтов файле "Огурцы соленые", а в базе "Огурцы соленые под водку" которые реально одно и то же?
А вопрос я не совсем понял)
 
W

WildAnther

=)
Под водку это хорошо... Но сначала так сказать самалеты...
Нет раз синхронизации с огурцами и молоком не будет точно(тобиш проблем с этим нет)
Есть эксель файл там список Номер Това Кол-во
Номер - число просто от 1 - N
Товар это просто текст причем текст именно определнный. в Екселе всё жестко там ошибок не может быть из списка выбирается товар. тоесть в 1ски он точно есть.
Кол-во Число (собственно сколько товара)
Проблема в том что мне в конечном итоге надо чтобы товар уютно сел с типом С.Номенклатура, дабы пойти дальше по документам.
Вот в чем стоит суть проблемы.
 
U

unknown181538

Так вот...
Проблема у вас не в том что "надо", а в том что "не садится", или в том, что "не знаете, как сделать..."... Это к вопросу формулировки...
Нужно примерно вот это:
[codebox]СпрТовар = Справочники.Номенклатура.НайтиПоНаименованию(НаименованиеИзФайла);
Если СпрТовар = Неопределено Тогда
СпрТовар = Справочники.Номенклатура.СоздатьЭлемент();
СпрТовар.Наименование = НаименованиеИзФайла;
СпрТовар.Записать();
КонецЕсли;
[/codebox]
 
W

WildAnther

Спасибо мужики за помошь. как появится возможность втыкнуть плюс поставлю обоим. помогли оба.
огромное спасибо!
Сделал по своему исходя из первого вариант получилось вот что
Спр= Справочники.Номенклатура;
С4 = Спр.НайтиПоНаименованию(Колонка2);
С2 = С4.Наименование;

Но подумав чтобы забивать новые данные неплохом бы иметь и вариант от unknown181538 (спасибо) и сделал и его вариант тоже... теперь всё тип топ.. веточку не закрываю может еще какой вопрос возникнит.. огромное спасибо...
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!