Доброго времени суток господа. У меня 1с 7.70.027 Торговля и Склад для Украины 7.70.048 и всё же назрел(а точнее накапали на мозг) вопрос может кто сталкивался и это элементарно решается но я увы так и не додумался( Собственно суть: есть чек/приходка/расходка ТЗ в которых имеет вид ШтрихКод-Артикул_Товар. Если пикать Штрих код всё гуд вставляется и артикул и товар и т.д. но вот проблема дальше если шк нет продавцы вводят артикул и он вставляет данные игнорируя столбец ШтрихКод, если и его нет и ищут по названию вводя в столбец товар то при вставке пропускаются столбцы и ШтрихКод и Артикул. Прошу помощи в решении данного вопроса или он вообще нерешаем? Спасибо всем за советы и подсказки
kayfatuch @ Сегодня, 1:08
,
Добрий день! тобто ви довыднику не знаходите товар по ШК? Треба створити цей товар - заповнити всі поля в товарі, а потім додати його в ТЗ. В ТЗ "товар" це елемент довідника повинен бути, а ШК і артикул це реквізити товара
kayfatuch @ Сегодня, 10:31
,
ТЗ - це таблиця значеь чи таблична часть документу? бо це "трохи" різне. Якщо ТЧ, то там на полі Штрих стоїть напевно процедура з допомогою якої і заповнюються всі поля документу. аналогічні функції треба прописати і при зміні артикула ...
Profi_1C77 @ Вчера, 14:42
,
Ну на таблицу значений можно тоже формулу навесить
Приношу извинения у всех кого мох ввести в заблуждение. В общем.... дошёл я до вот такого результата:
Процедура ПоискПоАртикулу()
Если Число(Артикул) = 0 Тогда
Возврат;
КонецЕсли;
Спр = СоздатьОбъект("Справочник.Номенклатура");
ТЗК = СоздатьОбъект("ТаблицаЗначений");
ТЗК.НоваяКолонка("Товар", "Справочник.Номенклатура");
ТЗК.НоваяКолонка("Цена", "Число", 15, 3);
ТЗК.НоваяКолонка("ШтрихКод", "Строка", 13); // Строка для штрих-кода
ТЗК.НоваяКолонка("Остаток", "Число", 13, 3);
ТЗК.УстановитьПараметрыКолонки("Товар",,,,,35);
ТЗК.УстановитьПараметрыКолонки("ШтрихКод",,,,,13);
ТЗК.УстановитьПараметрыКолонки("Цена",,,,,15);
ТЗК.УстановитьПараметрыКолонки("Остаток",,,,,13);
ВремРегистры = СоздатьОбъект("Регистры");
ОстТоваров = ВремРегистры.ОстаткиТоваров;
Спр.ВыбратьЭлементыПоРеквизиту("Артикул", СокрЛП(Артикул), 0, 0);
Пока Спр.ПолучитьЭлемент() = 1 Цикл
Если ПустоеЗначение(Склад) = 0 Тогда
ВремКолво = ОстТоваров.СводныйОстаток(Фирма, Спр.ТекущийЭлемент(), Склад, "ОстатокТовара");
Иначе
ВремКолво = ОстТоваров.СводныйОстаток(Фирма, Спр.ТекущийЭлемент(),, "ОстатокТовара");
КонецЕсли;
ТЗК.НоваяСтрока();
ТЗК.Товар = Спр.ТекущийЭлемент();
ШтрихКодТекущегоТовара = Спр.ТекущийЭлемент().ШтрихКод;
Если ШтрихКодТекущегоТовара <> 0 Тогда
ТЗК.ШтрихКод = Строка(ШтрихКодТекущегоТовара);
Иначе
Сообщить("Штрих-код пустой для товара с артикулом: " + Спр.ТекущийЭлемент().Артикул);
КонецЕсли;
ТЗК.Цена = глВернутьЦену(Спр.ТекущийЭлемент(), КатегорияЦен);
ТЗК.Остаток = ВремКолво;
КонецЦикла;
Если ТЗК.КоличествоСтрок() = 0 Тогда
Сообщить("Товар с артикулом " + СокрЛП(Артикул) + " не найден");
Возврат;
КонецЕсли;
ВыбрЭлем = 0;
Если ТЗК.КоличествоСтрок() > 1 Тогда
Если ТЗК.ВыбратьСтроку(0, "Выберите нужный товар") = 1 Тогда
ТЗК.ПолучитьСтрокуПоНомеру(0);
ВыбрЭлем = 1;
КонецЕсли;
Иначе
ВыбрЭлем = 1;
КонецЕсли;
Если ВыбрЭлем = 1 Тогда
Товар = ТЗК.Товар;
глПриИзмененииТовара(Контекст);
КонецЕсли;
КонецПроцедуры
ШтрихКодТекущегоТовара = Спр.ТекущийЭлемент().ШтрихКод;
Если ШтрихКодТекущегоТовара <> 0 Тогда
ТЗК.ШтрихКод = Строка(ШтрихКодТекущегоТовара);
Иначе
Сообщить("Штрих-код пустой для товара с артикулом: " + Спр.ТекущийЭлемент().Артикул);
КонецЕсли;
Если ШтрихКодТекущегоТовара <> 0
kayfatuch @ Сегодня, 2:31
,
Спробуйте таким чином:
//Если ТЗК.КоличествоСтрок() = 0 Тогда
// Сообщить("Товар с артикулом " + СокрЛП(Артикул) + " не найден");
// Возврат;
//КонецЕсли;
//
//ВыбрЭлем = 0;
//Если ТЗК.КоличествоСтрок() > 1 Тогда
// Если ТЗК.ВыбратьСтроку(0, "Выберите нужный товар") = 1 Тогда
// ТЗК.ПолучитьСтрокуПоНомеру(0);
// ВыбрЭлем = 1;
// КонецЕсли;
//Иначе
// ВыбрЭлем = 1;
//КонецЕсли;
//
//Если ВыбрЭлем = 1 Тогда
// Товар = ТЗК.Товар;
// глПриИзмененииТовара(Контекст);
//КонецЕсли;
НомСтроки = ТЗК.КоличествоСтрок();
Если НомСтроки = 0 Тогда
Сообщить("Товар с артикулом " + СокрЛП(Артикул) + " не найден");
Возврат;
ИначеЕсли НомСтроки > 1 Тогда
Если ТЗК.ВыбратьСтроку(НомСтроки, "Выберите нужный товар") = 0 Тогда
Возврат;
КонецЕсли;
КонецЕсли;
ТЗК.ПолучитьСтрокуПоНомеру(НомСтроки);
Товар = ТЗК.Товар;
ШтрихКод = ТЗК.ШтрихКод; //ШтрихКод - реквізит табличної частини (Може називається по іншому)
глПриИзмененииТовара(Контекст);
kayfatuch @ Сегодня, 2:31
,
Вот этот кусок кода по идее должен вываливаться с ошибкой
ТЗК.ПолучитьСтрокуПоНомеру(0);
Спр.ТекущийЭлемент().Артикул
ТекущийЭлемент() можно опустить, просто пишите Спр.Артикул
Спр.ТекущийЭлемент().Артикул
Спр.Артикул
Спр.ТекущийЭлемент().Артикул
рабочая конструкция потому и не задумывался об другом виде.
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua