ЗагрузкаИзТабличногоДокумента
Ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
(1)
А вообще, стандартная загрузка ТЧ документа, она же ничего фейкового не создает. Сколько раз пользовался, никаких проблем не испытывал. Делаешь искать по наименованию и все, никаких вычисляемых формул делать вроде и не надо
Если СсылкаНоменклатуры = Справочники.Номенклатура.ПустаяСсылка() Тогда
//Создаем
КонецЕсли;
А вообще, стандартная загрузка ТЧ документа, она же ничего фейкового не создает. Сколько раз пользовался, никаких проблем не испытывал. Делаешь искать по наименованию и все, никаких вычисляемых формул делать вроде и не надо
(3) конфигурация какая ?
Чтобы номенклатура не создавалась повторно, там в вашей обработке скорее всего выбор "режим загрузки" надо изменить. Там какие варианты ?
В ЗУПе, стандартная на этом месте крыжик - не создавать новых элементов. У вас какая-то другая, но думаю принцип тот же.
никакой код писать не нужно !
Чтобы номенклатура не создавалась повторно, там в вашей обработке скорее всего выбор "режим загрузки" надо изменить. Там какие варианты ?
В ЗУПе, стандартная на этом месте крыжик - не создавать новых элементов. У вас какая-то другая, но думаю принцип тот же.
никакой код писать не нужно !
Иван, добрый день!
Галочку в колонке "поле поиска" надо ставить. Обработка изначально не знает, по какому полю ей искать элемент справочника на случай, если он там уже есть. Поэтому ей нужно его указать.
Сама предпочитаю искать по коду, так как он, как правило, уникален. В колонке «Поле поиска» в строке «Код» ставим галочку. Теперь, если запись с таким кодом будет найдена, она будет заменена, в другом случае — создана.
Галочку в колонке "поле поиска" надо ставить. Обработка изначально не знает, по какому полю ей искать элемент справочника на случай, если он там уже есть. Поэтому ей нужно его указать.
Сама предпочитаю искать по коду, так как он, как правило, уникален. В колонке «Поле поиска» в строке «Код» ставим галочку. Теперь, если запись с таким кодом будет найдена, она будет заменена, в другом случае — создана.
(7)
Не работает пробовал уже так.
пример если
артикул АБВ а наименование 123 то он такую же уже не загрузит, но если
артикул АБВ а наименование 1234 тогда изменит уже существующую
А нужно чтоб если Артикуль=артикулу никогда новую не создавал и если артикуль и наименование совпадает тоже не создавал новую. Всё перепробовал бред один.. Хочу чтоб пользователи загружали всё номенклатуру из торг12. а потом уже создавали документ ПоступлениеТоваров, так как я не знаю как сделать что сразу загружать в табличную часть этой обработкой и когда нет номенклатуры он её создавал.
Думаю написать свою обработку но есть же штатная и хочется разобраться в ней.
Иван, добрый день!
Галочку в колонке "поле поиска" надо ставить. Обработка изначально не знает, по какому полю ей искать элемент справочника на случай, если он там уже есть. Поэтому ей нужно его указать.
Сама предпочитаю искать по коду, так как он, как правило, уникален. В колонке «Поле поиска» в строке «Код» ставим галочку. Теперь, если запись с таким кодом будет найдена, она будет заменена, в другом случае — создана.
Галочку в колонке "поле поиска" надо ставить. Обработка изначально не знает, по какому полю ей искать элемент справочника на случай, если он там уже есть. Поэтому ей нужно его указать.
Сама предпочитаю искать по коду, так как он, как правило, уникален. В колонке «Поле поиска» в строке «Код» ставим галочку. Теперь, если запись с таким кодом будет найдена, она будет заменена, в другом случае — создана.
Не работает пробовал уже так.
пример если
артикул АБВ а наименование 123 то он такую же уже не загрузит, но если
артикул АБВ а наименование 1234 тогда изменит уже существующую
А нужно чтоб если Артикуль=артикулу никогда новую не создавал и если артикуль и наименование совпадает тоже не создавал новую. Всё перепробовал бред один.. Хочу чтоб пользователи загружали всё номенклатуру из торг12. а потом уже создавали документ ПоступлениеТоваров, так как я не знаю как сделать что сразу загружать в табличную часть этой обработкой и когда нет номенклатуры он её создавал.
Думаю написать свою обработку но есть же штатная и хочется разобраться в ней.
Надо использовать события. Перед записью объекта запросом проверить 2 поля, и если что в отказ
В тело прописать
В тело прописать
Запрос=новый запрос("ВЫБРАТЬ
| Номенклатура.Ссылка
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Наименование = &Наименование
| И Номенклатура.Артикул = &Артикул");
Запрос.УстановитьПараметр("Наименование",Объект.Наименование);
Запрос.УстановитьПараметр("Артикул",Объект.Артикул);
Результат=Запрос.Выполнить().выбрать();
Если Результат.Следующий() тогда
//Значит нашел товар
отказ=Истина;
КонецЕсли;
ПоказатьПрикрепленные файлы:
(10)
Сделал так, если артикул АБВ и наименование 123 и ещё раз это пытаться загрузить то не дублирует.
Но если артикул такой же а наименование другое то он создаёт..
А нужно чтоб не создавал.
так как Артикул не должен повторятся НИКОГДА! так как он всегда УНИКАЛЕН а наименование нет.
Запрос=новый запрос("ВЫБРАТЬ | Номенклатура.Ссылка |ИЗ | Справочник.Номенклатура КАК Номенклатура |ГДЕ | Номенклатура.Наименование = &Наименование | И Номенклатура.Артикул = &Артикул"); Запрос.УстановитьПараметр("Наименование",Объект.Наименование); Запрос.УстановитьПараметр("Артикул",Объект.Артикул); Результат=Запрос.Выполнить().выбрать(); Если Результат.Следующий() тогда //Значит нашел товар отказ=Истина; КонецЕсли;
Сделал так, если артикул АБВ и наименование 123 и ещё раз это пытаться загрузить то не дублирует.
Но если артикул такой же а наименование другое то он создаёт..
А нужно чтоб не создавал.
так как Артикул не должен повторятся НИКОГДА! так как он всегда УНИКАЛЕН а наименование нет.
(14)
Запрос можно усложнить
В этом случае если у товара указан артикул то поиск будет идти по артикулу и если нашел товар то отказ. Если Артикул не указан, то поиск будет идти по наименованию.
Запрос можно усложнить
Запрос=новый запрос("ВЫБРАТЬ
| Номенклатура.Ссылка
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Выбор когда &ЕстьАртикул тогда Номенклатура.Артикул = &Артикул иначе
| Номенклатура.Наименование = &Наименование
| Конец");
Запрос.УстановитьПараметр("Наименование",Объект.Наименование);
Запрос.УстановитьПараметр("Артикул",Объект.Артикул);
Запрос.УстановитьПараметр("ЕстьАртикул",ЗначенниеЗаполнено(Объект.Артикул));
Результат=Запрос.Выполнить().выбрать();
Если Результат.Следующий() тогда
//Значит нашел товар
отказ=Истина;
КонецЕсли;
ПоказатьВ этом случае если у товара указан артикул то поиск будет идти по артикулу и если нашел товар то отказ. Если Артикул не указан, то поиск будет идти по наименованию.
артикул АБВ а наименование 1234 тогда изменит уже существующую
НайтиПоНаименованию(<Наименование>, <ТочноеСоответствие>, <Родитель>, <Владелец>)
Второй аргумент у функции НайтиПоНаименованию - Ложь. Запишите так - НайтиПоНаименованию(СокрЛП(ТекстЯчейки),Истина)
Нет, я другое имела в виду: поиск по точному соответствию, если не найдено - номенклатура создается
Если ЗначениеЗаполнено(Справочники.Номенклатура.НайтиПоНаименованию(СокрЛП(ТекстЯчейки),Истина) ) Тогда
Результат =СсылкаНоменклатуры.Ссылка;
Иначе
СсылкаНоменклатуры = Справочники.Номенклатура.СоздатьГруппу();
СсылкаНоменклатуры.Код = СокрЛП(ТекстЯчейки);
СсылкаНоменклатуры.Наименование = СокрЛП(ТекстЯчейки);
Попытка
СсылкаНоменклатуры.Записать();
Результат = СсылкаНоменклатуры.Ссылка;
Исключение
Сообщить("Не удалось записать");
КонецПопытки;
КонецЕсли;
Показать
(15)
ничего не изменилось
Походу нельзя так( И получается если пользователь накосячит он создаст с таким же артикул но разным наименованием.. Эх..
Если ЗначениеЗаполнено(Справочники.Номенклатура.НайтиПоНаименованию(СокрЛП(ТекстЯчейки),Истина) ) Тогда Результат =СсылкаНоменклатуры.Ссылка; Иначе СсылкаНоменклатуры = Справочники.Номенклатура.СоздатьГруппу(); СсылкаНоменклатуры.Код = СокрЛП(ТекстЯчейки); СсылкаНоменклатуры.Наименование = СокрЛП(ТекстЯчейки); Попытка СсылкаНоменклатуры.Записать(); Результат = СсылкаНоменклатуры.Ссылка; Исключение Сообщить("Не удалось записать"); КонецПопытки;
ничего не изменилось
Походу нельзя так( И получается если пользователь накосячит он создаст с таким же артикул но разным наименованием.. Эх..
Вакансии
Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)