Сопоставление номенклатуры нашей и поставщика при загрузке из эксель.

1. NE_ZNAIY 22.01.15 23:21 Сейчас в теме
Постоянно пользуемся обработкой ЗагрузкаДанныхИзТабличногоДокумента.
Раньше при загрузке из накладной поставщика (эксель) в документ поступления при несоответствии номенклатуры нашей и поставщика (что естественно) выходили следующим образом: В карточке номенклатуры Наименование прописывали НАШЕ, а Полное наименовение прописывали как у поставщика. В обработке ЗагрузкаДанныхИзТабличногоДокумента в строке Наименовние ставим режим Вычислять и пишем такой код
//////////////////////////
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1
| Номенклатура.Ссылка
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.НаименованиеПолное ПОДОБНО &НаименованиеПолное";

Запрос.УстановитьПараметр("НаименованиеПолное", ТекстЯчейки);

Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();

Если Выборка.Следующий() Тогда
Результат = Выборка.Ссылка;
Иначе
ОписаниеОшибки = "Не найдена ноиенклатура с полным наименованием " + ТекстЯчейки;
КонецЕсли;
/////////////////////////
Сейчас обновил несколько релизов нараз.
И вижу появился новый регистр Номенклатура поставщика. (Может и раньше был, но я не знал)
Заполнил Список Номенклатура контрагентов, где указал соответствие нашей номенклатуры и контрагентов вручную (по другому-то как?)
И вот вопрос.
Может ли кто-нибудь подсказать как составить новый запрос при загрузке приходной накладной, чтоб обработка искала в эксель номенклатуру поставщика, а в документ поступления подставляла нашу?
Сам-то я на это не способен.
Спасибо.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. NE_ZNAIY 24.01.15 15:14 Сейчас в теме
ну неужели тут никто в коде не разбирается, чтоб подправить запрос!
3. Alexey_A 8 25.01.15 10:05 Сейчас в теме
(2) NE_ZNAIY, вот после такого вопроса точно ни кто не подскажет просто так. дело двух минут, разбираются все, разжовывать и в рот класть не любит народ, таких как вы видно издалека :)
5. NE_ZNAIY 25.01.15 12:57 Сейчас в теме
(3) Alexey_A, о боже. что вам не понравилось в моём выражении!!
Да я заплатить готов за это.
Если вы в состоянии мне помочь, так скажите, что можете, но это будет стоить столько-то.
Если я кого-то обидел или огорчил своим выражением, что приношу свои извинения.
И не хотел, м не думал, что это будет выглядеть грубостью.
Просто просмотров куча, а работы тут на две минуты.
Но сам-то я только как пользователь.
4. XiPyPg 25.01.15 12:08 Сейчас в теме
ну делай запрос в регистр и смотри там, если сам ничего вобще непонимаешь воспользуйся аутсертингом, такую задачу любой программист решит минут за 15 максимум а то и меньше.

а так примерно будет так

регистр.ном как ном
из
рег.НомПост как регистр
где
ПолноеНаимен подобно &наименов

как видешь полная аналогия ток запрос в регистр,можешь в запросе напрямую поменять таблицу тогда если все ровно он все сам заменит
6. NE_ZNAIY 25.01.15 13:03 Сейчас в теме
(4) XiPyPg, сам я не программист. И программистов тут, где я живу нету. Просто нету.
Поэтому я сюда и обратился. Здесь как бы всегда помогали.
Если кто-то может составить такой запрос, составте. Цену скажите. Я его тут и выложу для всех. Ведь это же даёт возможность штатными средствами загружать приходные накладные от любого поставщика. только предварительно, конечно, большая ручная работа по соответствию номенклатуры. Но один-то раз это можно сделать.
7. x_under 13 26.01.15 09:07 Сейчас в теме
(6) NE_ZNAIY, развлекайтесь
Данное событие не очень удобно с точки зрения установки параметров, но как простое решение подходит.

Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
|	НоменклатураКонтрагентов.Номенклатура
|ИЗ
|	РегистрСведений.НоменклатураКонтрагентов КАК НоменклатураКонтрагентов
|ГДЕ
|	НоменклатураКонтрагентов.Контрагент = &Контрагент
|	И НоменклатураКонтрагентов.КодНоменклатурыКонтрагента = &КодНоменклатурыКонтрагента
|   // в зависимости от поля поиска надо оставить соответствующее условие
|	//И НоменклатураКонтрагентов.АртикулНоменклатурыКонтрагента = &АртикулНоменклатурыКонтрагента
|	//И НоменклатураКонтрагентов.НаименованиеНоменклатурыКонтрагента ПОДОБНО &НаименованиеНоменклатурыКонтрагента
	
// данное событие не удобно для заполнения параметров и код контрагента придется менять вручную
Запрос.УстановитьПараметр("Контрагент", Справочники.Контрагенты.НайтиПоКоду("Код вашего поставщика"));

// условие опять же зависит от поля поиска
Запрос.УстановитьПараметр("КодНоменклатурыКонтрагента", ТекстЯчейки);

Выборка = Запрос.Выполнить().ВЫбрать();
Если Выборка.Следующий() Тогда
	Результат = Выборка.Номенклатура;
КонецЕсли; 
Показать
jobkostya1c_ERP; NE_ZNAIY; +2 Ответить
12. Vary 26.01.15 15:23 Сейчас в теме
(7) x_under, И что это будет? Номенклатура контрагента? А человеку надо получить НОМЕНКЛАТУРУ!!!
13. minimajack 80 26.01.15 15:26 Сейчас в теме
(12) Vary, не несите чушь. Все правильно написано. Регистр связан со справочником Номенклатуры.
14. Vary 26.01.15 15:45 Сейчас в теме
(13) minimajack, Прошу прощения, ткните пальчиком на СВЯЗЬ в запросе, а то чушь у вас в результате получается....
15. minimajack 80 26.01.15 15:50 Сейчас в теме
(14) Vary, там ненужна связь
И вижу появился новый регистр Номенклатура поставщика. (Может и раньше был, но я не знал)
Заполнил Список Номенклатура контрагентов, где указал соответствие нашей номенклатуры и контрагентов вручную (по другому-то как?)

в регистре хранится номенклатура (своя) и ее код (артикул,наименование) контрагента...по коду контрагента и артикулу(контрагента) - в регистре прямое сопоставление со справочником номенклатуры
16. Vary 26.01.15 15:56 Сейчас в теме
(15) minimajack, Мляя, точняк, прошу прощения...
А РС.Номенклатура это и есить спр.Номенклатура?
17. minimajack 80 26.01.15 15:57 Сейчас в теме
20. NE_ZNAIY 26.01.15 16:14 Сейчас в теме
(7) x_under, В накладной поставщика нет ни кода, ни артикула номенклатуры.
Только наименование.
Если у меня в "Списке Номенклутура контрагента" заполнено только наще наименование, контрагент, номенклатура поставщика.
Этого хватит?
Что-то у меня ничего не получается.
32. jobkostya1c_ERP 100 02.02.15 20:15 Сейчас в теме
Только заметил эту тему насчет номенклатуры поставщика. Моя тут была как в УТ 10.3 правильно учесть номенклатуру контрагентов. главное чтоб дешево было и удобно.
(7) x_under, тоже приму на вооружение как примитивный нечеткий поиск.
8. NE_ZNAIY 26.01.15 09:52 Сейчас в теме
Спасибо.. отосплюсь.. посмотрю. а то сегодня до 5 часов утра работать пришлось.
9. NE_ZNAIY 26.01.15 13:49 Сейчас в теме
Нет, что-то не работает.
Во-вервых, я так понимаю после ПОДОБНО &НаименованиеНоменклатурыКонтрагента надо добавить кавычки " и точку с запятой ;?
И в какой момент долже выдаться запрос на ввод кода контрагента?
Потому как не спрашивает ничего.
11. minimajack 80 26.01.15 14:40 Сейчас в теме
(9) NE_ZNAIY, надо в код 1С8 вставить код контрагента...если контрагентов много использовать ВвестиСтроку
Запрос.УстановитьПараметр("Контрагент", Справочники.Контрагенты.НайтиПоКоду("Код вашего поставщика"));

->
Запрос.УстановитьПараметр("Контрагент", Справочники.Контрагенты.НайтиПоКоду("04185"));
NE_ZNAIY; +1 Ответить
10. Vary 26.01.15 14:11 Сейчас в теме
Как вариант: создаешь справочник "Номенклатура контрагентов", туда пишешь наименование номенклатуры у контрагента и ссылку на свою номенклатуру, потом в табличную часть документа "Поступление" добавляешь колонку "Номенклатура контрагента", при загрузки из табличного документа заполнится колонка номенклатуры контрагента, а потом уже сопоставляешь ее с номенклатурой своей или вычисляешь в настройках загрузки ;)))
18. NE_ZNAIY 26.01.15 15:58 Сейчас в теме
(10) Vary, В начале, в первом посте темы я написАл: "Заполнил Список Номенклатура контрагентов, где указал соответствие нашей номенклатуры и контрагентов вручную (по другому-то как?)"
Так что это у меня сделано.
19. x_under 13 26.01.15 16:05 Сейчас в теме
(18) NE_ZNAIY, контрагента не спросит. Надо именно код в обработке менять как указали в (11)
Если у вас поиск по наименованию. то в запросе укажите закомментируйте условие по коду и оставьте условие по наименованию.

Про кавычки и точку с запятой - правильно. Писал в браузере, поэтому ошибки не проверял
NE_ZNAIY; +1 Ответить
21. NE_ZNAIY 26.01.15 16:15 Сейчас в теме
22. NE_ZNAIY 26.01.15 16:29 Сейчас в теме
Всё заработало!! ТЯЖЕЛО со мной...
такой в итоге код использовал.
===================
Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
| НоменклатураКонтрагентов.Номенклатура
|ИЗ
| РегистрСведений.НоменклатураКонтрагентов КАК НоменклатураКонтрагентов
|ГДЕ
| НоменклатураКонтрагентов.Контрагент = &Контрагент
| И НоменклатураКонтрагентов.НаименованиеНоменклатурыКонтрагента ПОДОБНО &НаименованиеНоменклатурыКонтрагента";
Запрос.УстановитьПараметр("Контрагент", Справочники.Контрагенты.НайтиПоКоду("000000109"));
Запрос.УстановитьПараметр("НаименованиеНоменклатурыКонтрагента", ТекстЯчейки);

Выборка = Запрос.Выполнить().ВЫбрать();
Если Выборка.Следующий() Тогда
Результат = Выборка.Номенклатура;
КонецЕсли;
===========================
23. NE_ZNAIY 26.01.15 16:33 Сейчас в теме
Правда, если обработка не нашла номенклатуры контрагента, то добавляет пустую строку.
Раньше-то, как бы помечала примечанием, что строка не найдена.
Но всё равно СПАСИБО!
24. NE_ZNAIY 26.01.15 18:41 Сейчас в теме
А ещё в продолжении темы.
Оказывается имеется ограничение на уникальность строки с нашим наименованием номенклатуры?
Вполне может быть такая ситуация.
У поставщика номенклатура:
Сок агуша яблоко
Сок агуша апельсин
Сок агуша груша.
Ну и т.д.
А у нас
Сок агуша в ассортименте.
Более одного раза программа не даёт заносить наше наименование.
Можете подсказать как убрать это ограничение?
25. minimajack 80 27.01.15 08:11 Сейчас в теме
(24) NE_ZNAIY без изменения структуры базы:
вариант 1
добавить характеристику номенклатуры к "Сок агуша в ассортименте"...
ном-ра "Сок агуша в ассортименте"
хар-ка "яблоко"
хар-ка "апельсин"
....

вариант 2
добавить фейкового контрагента
мКонтрагенты = Новый Массив;
мКонтрагенты.Добавить(Справочники.Контрагенты.НайтиПоКоду("000000109"));
мКонтрагенты.Добавить(Справочники.Контрагенты.НайтиПоКоду("фейккод"));
Запрос.УстановитьПараметр("Контрагенты", мКонтрагенты);

исправить
|ГДЕ 
| НоменклатураКонтрагентов.Контрагент В (&Контрагенты) 

это позволит для фейкового кон-та добавить другое наименование...

фейкконтр1 - "Сок агуша яблоко "
фейкконтр2 - "Сок агуша апельсин "
фейкконтр3 - "Сок агуша груша"

ЗЫ православно верно использовать хар-ки, второй способ костыль, но должен работать. Правда вам придется завести немало левых контрагентов если у вас много таких позиций.
NE_ZNAIY; +1 Ответить
26. NE_ZNAIY 27.01.15 09:21 Сейчас в теме
(25) minimajack, С фейками, наверное, не пойдёт. Как потом из приходгой накладной загружать.
С характеристиками никогда не работали.
А если конфу изменить, (всё равно изменена) то это где?
Не подскажете?
27. minimajack 80 27.01.15 09:50 Сейчас в теме
(26) NE_ZNAIY, работайте с характеристиками, либо правьте эксель файл(макросами заменяйте проблемные позиции), либо добавьте свой регистр, и там прописывайте соответствие
ЗЫ ломать не строить.
28. Sergius79 27.01.15 10:08 Сейчас в теме
(26) NE_ZNAIY, Тыкать пальцем не буду, дам направление. В регистре сведений на закладке основная есть поля "Периодичность" и "Режим записи" покурите по ним информацию.
29. Sergius79 27.01.15 10:13 Сейчас в теме
2 одинаковые записи в независимом регистре по ведущим полям существовать не могут
30. x_under 13 27.01.15 11:30 Сейчас в теме
На самом деле подход не верен. Если вы свернуто ведете номенклатуру, то использование этого регистра теряет смысл. Регистр рассчитывает на связь один в один, то есть если контрагент дает вам 3 позиции вы их так и ведете.
31. NE_ZNAIY 27.01.15 15:29 Сейчас в теме
Решили использовать характеристики.
Всем большое спасибо.
33. NE_ZNAIY 02.02.15 21:22 Сейчас в теме
Ну неужели.... Встретились ))))
34. jobkostya1c_ERP 100 03.02.15 19:28 Сейчас в теме
(33) NE_ZNAIY, встретились. Делать надо. Вторую неделю обсуждаем как.
35. NE_ZNAIY 05.02.15 18:35 Сейчас в теме
Уважаемые, форумчане, которые, в отличие от меня разбираются в коде, помогите мне пожалуйста ещё.
Опять же грузим обработкой ЗаггрузкаДанныхИзТабличногоДокумента.
В накладной поставщика номенклатура не совпадает с нашей, но есть штрих-код, еоторый, естественно, идентичен нашему. У нас в базе все эти штрих-коды занесены.
КАК СДЕЛАТЬ - чтоб обработка искала штрих-коды в накладной, а подставляла в документ поступления наши наименования?
А можно ли вообще такое?
36. minimajack 80 05.02.15 22:06 Сейчас в теме
(35) NE_ZNAIY, без примера файлов прайса вряд ли кто поможет...да и как бы программистам кушать надо)
39. NE_ZNAIY 09.02.15 00:44 Сейчас в теме
(36) minimajack, вы, наверное с мисты сюда пришли.
С ущербной мисты.
40. minimajack 80 09.02.15 08:16 Сейчас в теме
(39) NE_ZNAIY, не переходите на личности, и не занимайтесь флеймом в своей же теме.
ЗЫ вы ошиблись
41. NE_ZNAIY 09.02.15 11:13 Сейчас в теме
(40) minimajack, хватит уже разводить флуд. Пожалуйста.
37. x_under 13 06.02.15 09:07 Сейчас в теме
В строке ставите Вычислить, а в выражении пишите код
// запрос для получения данных
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1 РегистрСведений.ШтрихКоды.* ГДЕ ШтрихКод = &ШтрихКод";
Запрос.УстановитьПараметр("ШтрихКод", ТекстЯчейки);

// построение выборки
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
	Результат = Выборка.Владелец;
	// если используются характеристики или серии, то в их полях для вычисления необходимо указать
	//Результат = Выборка.ХарактеристикаНоменклатуры;
	//Результат = Выборка.СерияНоменклатуры;
	//Результат = Выборка.ЕдиницаИзмерения;
Иначе	
 	ОписаниеОшибки = "Данные о штрихкоде " + ТекстЯчейки + "не найдены");
КонецЕсли; 
Показать
NE_ZNAIY; +1 Ответить
38. NE_ZNAIY 09.02.15 00:43 Сейчас в теме
(37) x_under, Спасибо большое.
42. NE_ZNAIY 09.02.15 12:07 Сейчас в теме
(37) x_under, Порверил, всё работает, ещё раз спасибо.
Только После ОписаниеОшибки = не хватало скобки "("
Поставил.
САМ Разобрался!!!! )))
43. minimajack 80 09.02.15 19:50 Сейчас в теме
(42) NE_ZNAIY, наоборот, в конце была лишняя =)), синтаксически - скобки влияют лишь на порядок(приоритет) выполнения операций, но в данном случае абсолютно ненужны, и просто существовали - как остаток от копи-паста...
44. NE_ZNAIY 10.02.15 09:54 Сейчас в теме
45. jobkostya1c_ERP 100 10.02.15 21:54 Сейчас в теме
(44) NE_ZNAIY, предлагаю объединить усилия по разработке. Завтра придется приступить к своему варианту. В личку.
46. NE_ZNAIY 10.02.15 22:24 Сейчас в теме
(45) kostyaomsk, Я б с удовольствием, но я в коде, как, Вы наверное, поняли ну нихрена не разбираюсь.
Я. конечно, не совсем идиот, но толку-то с меня как молока с козла. А у вас-то задача какая стоит? Мы так соответствие номенклатур нашей и контрагента вручную делаем. Используем почти стандартную обработку с ИТС ЗагрузкаДанныхИзТабличногоДокумента. Почти, потомучто тут кто-то её доработал, а я и скачал. Давно это было. Отличие доработанной, в том, что она сохраняет ранее настроенные колонки на вкладке "Настройка". Раньще стандартная не сохраняла. Сейчас не знаю. Может ребята-девчата из 1С доделали её. Я им писАл насчет её.
И как бы мы-то довольны.
В личку писать мани требуют, а у меня всего-то 0,45. Так что не могу. Извините.
Почту могу сказать
kidus@yandex.ru
47. jobkostya1c_ERP 100 16.02.15 20:30 Сейчас в теме
(46) NE_ZNAIY, вот наткнулся на приличный шаблон по загрузке из Excel хотя бы (где можно номера колонок указать) Загрузка цен из Еxcel в документ "Установка цен номенклатуры", и веса в номенклатуру Тут, правда для комплексной автоматизации.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот