Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 4
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Проблема с ТЗ в документах          
kayfatuch Подменю пользователя
сообщение 06.11.24, 1:08
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 38
Из: Кривой Рог
Спасибо сказали: 2 раз
Рейтинг: 2

Доброго времени суток господа. У меня 1с 7.70.027 Торговля и Склад для Украины 7.70.048 и всё же назрел(а точнее накапали на мозг) вопрос может кто сталкивался и это элементарно решается но я увы так и не додумался( Собственно суть: есть чек/приходка/расходка ТЗ в которых имеет вид ШтрихКод-Артикул_Товар. Если пикать Штрих код всё гуд вставляется и артикул и товар и т.д. но вот проблема дальше если шк нет продавцы вводят артикул и он вставляет данные игнорируя столбец ШтрихКод, если и его нет и ищут по названию вводя в столбец товар то при вставке пропускаются столбцы и ШтрихКод и Артикул. Прошу помощи в решении данного вопроса или он вообще нерешаем? Спасибо всем за советы и подсказки

denis84 Подменю пользователя
сообщение 06.11.24, 9:51
Сообщение #2

Оратор
Иконка группы
Группа: Местный
Сообщений: 471
Из: Украина
Спасибо сказали: 154 раз
Рейтинг: 155.8

kayfatuch @ Сегодня, 1:08 * ,
Добрий день! тобто ви довыднику не знаходите товар по ШК? Треба створити цей товар - заповнити всі поля в товарі, а потім додати його в ТЗ. В ТЗ "товар" це елемент довідника повинен бути, а ШК і артикул це реквізити товара

Сообщение отредактировал denis84 - 06.11.24, 9:52

kayfatuch Подменю пользователя
сообщение 06.11.24, 10:31
Сообщение #3

Общительный
**
Группа: Пользователи
Сообщений: 38
Из: Кривой Рог
Спасибо сказали: 2 раз
Рейтинг: 2

Цитата(denis84 @ 06.11.24, 9:51) *
Добрий день! тобто ви довыднику не знаходите товар по ШК? Треба створити цей товар - заповнити всі поля в товарі, а потім додати його в ТЗ. В ТЗ "товар" це елемент довідника повинен бути, а ШК і артикул це реквізити товара

Нет вы немного не поняли вопроса. В справочника есть и товар и штрихКод и артикул. Проблема именно в ТЗ документов описанных. Повторюсь в ТЗ документов есть Поля именно в таком порядке ШтрихКод Артикул Товар. Вставляя ШтрихКод заполняются остальные поля таблицы. но стоит пропустить один столбец и все предыдущий не заполняется. Пример ситуации у товара нет ценника и штрих код повреждён. продавцы ищут его по наименованию через столбец товар. Находят подтягивается цена остатки т.п. но артикул и ШтрихКод из справочника не тянутся в поля которые идут до столбца товар. В этом основная проблема

denis84 Подменю пользователя
сообщение 06.11.24, 13:08
Сообщение #4

Оратор
Иконка группы
Группа: Местный
Сообщений: 471
Из: Украина
Спасибо сказали: 154 раз
Рейтинг: 155.8

kayfatuch @ Сегодня, 10:31 * ,
ТЗ - це таблиця значеь чи таблична часть документу? бо це "трохи" різне. Якщо ТЧ, то там на полі Штрих стоїть напевно процедура з допомогою якої і заповнюються всі поля документу. аналогічні функції треба прописати і при зміні артикула ...

Profi_1C77 Подменю пользователя
сообщение 06.11.24, 14:42
Сообщение #5

Говорящий
***
Группа: Пользователи
Сообщений: 55
Из: Черкассы
Спасибо сказали: 15 раз
Рейтинг: 15

Цитата(kayfatuch @ 06.11.24, 10:31) *
но артикул и ШтрихКод из справочника не тянутся в поля которые идут до столбца товар.

Если ТЗ это табличная часть документа ( не таблица значений), то у Формы на этих колонках прописаны формулы, и вероятно формула не обрабатывает ( заполняет ) нужные вам колонки; Это легко проверить - найти формулу - включить отладчик и в табло отслеживать изменения реквизитов строки ( Артикул - ШтрихКод)
Если я конечно Вас правильно понял

tibank Подменю пользователя
сообщение 07.11.24, 11:45
Сообщение #6

Молчаливый
*
Группа: Пользователи
Сообщений: 9
Спасибо сказали: 2 раз
Рейтинг: 2

Profi_1C77 @ Вчера, 14:42 * ,
Ну на таблицу значений можно тоже формулу навесить smile.gif

kayfatuch Подменю пользователя
сообщение 08.11.24, 2:31
Сообщение #7

Общительный
**
Группа: Пользователи
Сообщений: 38
Из: Кривой Рог
Спасибо сказали: 2 раз
Рейтинг: 2

Приношу извинения у всех кого мох ввести в заблуждение. В общем.... дошёл я до вот такого результата:
Процедура ПоискПоАртикулу()
    Если Число(Артикул) = 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 Тогда
            ТЗК.ШтрихКод = Строка(ШтрихКодТекущегоТовара);
        Иначе
            Сообщить("Штрих-код пустой для товара с артикулом: " + Спр.ТекущийЭлемент().Артикул);
        КонецЕсли;

и 1С мне выдавала что да она видит Штрих Код в базе и он такой то. но по итогу ячейка таблицы(многострочной части) с названием ШтрихКод просто тупо пустая. Может я кривой или смотрю не туда, Всё таки я самоучка и многого могу не знать. в чём причина? Спасибо всем за советы.

andrew76 Подменю пользователя
сообщение 08.11.24, 5:52
Сообщение #8

Оратор
*****
Группа: Пользователи
Сообщений: 480
Из: Казахстан
Спасибо сказали: 49 раз
Рейтинг: 49

Цитата(kayfatuch @ 08.11.24, 5:31) *
ТЗК.НоваяКолонка("ШтрихКод", "Строка", 13);


Тип колонки "Штрихкод" символьный судя по коду.А сравнение идет как с числовым полем.

Если  ШтрихКодТекущегоТовара <> 0

Sharzem Подменю пользователя
сообщение 08.11.24, 9:13
Сообщение #9

Оратор
Иконка группы
Группа: Местный
Сообщений: 301
Спасибо сказали: 99 раз
Рейтинг: 100.1

kayfatuch @ Сегодня, 2:31 * ,
Спробуйте таким чином:
    //Если ТЗК.КоличествоСтрок() = 0 Тогда
    //    Сообщить("Товар с артикулом " + СокрЛП(Артикул) + " не найден");
    //    Возврат;
    //КонецЕсли;
    //
    //ВыбрЭлем = 0;
    //Если ТЗК.КоличествоСтрок() > 1 Тогда
    //    Если ТЗК.ВыбратьСтроку(0, "Выберите нужный товар") = 1 Тогда
    //        ТЗК.ПолучитьСтрокуПоНомеру(0);
    //        ВыбрЭлем = 1;
    //    КонецЕсли;
    //Иначе
    //    ВыбрЭлем = 1;
    //КонецЕсли;
    //
    //Если ВыбрЭлем = 1 Тогда
    //    Товар = ТЗК.Товар;      
    //    глПриИзмененииТовара(Контекст);
    //КонецЕсли;

    НомСтроки = ТЗК.КоличествоСтрок();
    Если НомСтроки = 0 Тогда
        Сообщить("Товар с артикулом " + СокрЛП(Артикул) + " не найден");
        Возврат;
    ИначеЕсли НомСтроки > 1 Тогда
        Если ТЗК.ВыбратьСтроку(НомСтроки, "Выберите нужный товар") = 0 Тогда
            Возврат;
        КонецЕсли;
    КонецЕсли;
    
    ТЗК.ПолучитьСтрокуПоНомеру(НомСтроки);

    Товар = ТЗК.Товар;
    ШтрихКод = ТЗК.ШтрихКод; //ШтрихКод - реквізит табличної частини (Може називається по іншому)
    глПриИзмененииТовара(Контекст);

Примітка: Заповнення додаткових полів табличної частини у Вас мабуть криється в глПриИзмененииТовара(Контекст).
Але, якщо Ваше поле ШтрихКод це дійсно реквізит, то варто було б розглянути варіант щоб воно було Табличним полем з формулою Товар.ШтрихКод.


Signature
То, что для одного человека константа, для другого - переменная. (Алан.Дж.Перлис)

Спасибо сказали: kayfatuch,

kayfatuch Подменю пользователя
сообщение 08.11.24, 10:50
Сообщение #10

Общительный
**
Группа: Пользователи
Сообщений: 38
Из: Кривой Рог
Спасибо сказали: 2 раз
Рейтинг: 2

Цитата(Sharzem @ 08.11.24, 9:13) *
Примітка: Заповнення додаткових полів табличної частини у Вас мабуть криється в глПриИзмененииТовара(Контекст).

Велике дякую! Дійсно там було. я ще дивувався чому якщо шукаю по ШтрихКод Артикул то заповнюется без додаткових налаштувань. вніс зміни в головному модулі і все спрацювало.

tibank Подменю пользователя
сообщение 08.11.24, 11:20
Сообщение #11

Молчаливый
*
Группа: Пользователи
Сообщений: 9
Спасибо сказали: 2 раз
Рейтинг: 2

kayfatuch @ Сегодня, 2:31 * ,
Вот этот кусок кода по идее должен вываливаться с ошибкой
ТЗК.ПолучитьСтрокуПоНомеру(0);


И в такой конструкции
Спр.ТекущийЭлемент().Артикул
ТекущийЭлемент() можно опустить, просто пишите
Спр.Артикул

Ну и при создании колонки можно сразу установить параметры(и ширину тоже), поэтому УстановитьПараметрыКолонки тоже можно опустить

И Вы заполняете тз, которое создаете через СоздатьОбъект, а штрих-код не видите в многострочной части документе. Я просто не вижу в Вашем коде, как он туда попадает из ТЗК

Спасибо сказали: kayfatuch,

kayfatuch Подменю пользователя
сообщение 09.11.24, 1:34
Сообщение #12

Общительный
**
Группа: Пользователи
Сообщений: 38
Из: Кривой Рог
Спасибо сказали: 2 раз
Рейтинг: 2

Цитата(tibank @ 08.11.24, 11:20) *
Вот этот кусок кода по идее должен вываливаться с ошибкой
ТЗК.ПолучитьСтрокуПоНомеру(0);

На удивление этот момент это из стандартного решения 1с. Ну тобишь это то что сами компания 1с написала не я. Я уже модифицировал готовую процедуру в решениях типа вставки ШтрихКода.

Цитата(tibank @ 08.11.24, 11:20) *
И в такой конструкции
Спр.ТекущийЭлемент().Артикул

ТекущийЭлемент() можно опустить, просто пишите
Спр.Артикул

Спасибо за информацию поправлю. Как писал я самоучка какие видел в инете решения те и пробовал. Просто
Спр.ТекущийЭлемент().Артикул
рабочая конструкция потому и не задумывался об другом виде.

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 07.12.24, 23:11
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!