Информационный поток
Задания вакансии материалы разработки сообщения форума
Форум

Обсуждение к заданию: Исправить обработку сравнения данных в ТЧ и Excel для УТ 11.1 (серверная, нетиповая)

    • #1
    • 07.06.2015 21:47
    0
    Есть обработка, которая сравнивает табличную часть заказа поставщику с файлом Excel и выводить строки несоответствия, с указанием типа несоответствия. Работает она таким образом: выгружает заказ...  Подробнее>>
    • #2
    • 07.06.2015 21:50
    0
    Не понятно - проводится сравнение, а действия какие обработка предпринимает? Загружает из файла? Или просто сообщаются расхождения?
    • #3
    • 07.06.2015 22:00
    0
    m-serg74
    Не понятно - проводится сравнение, а действия какие обработка предпринимает? Загружает из файла? Или просто сообщаются расхождения?

    сравнивает два источника данных (ТЧ заказа поставщику и данные из файла Excel), выдает их сравнение в таблицу значений в обработке, после редактирования - позволяет эту таблицу загрузить обратно в заказ поставщику
    • #4
    • 08.06.2015 07:55
    0
    т.е. таблицу свернули - назначение пропало, кол-во просуммировалось. а после редактирования вы хотите, чтобы строка вернулась в заказ с назначением? тогда как должно быть на таком примере:
    номенклатура1 10шт назначение1
    номенклатура1 15шт назначение2
    после свертывания стало
    номенклатура1 25шт редактируем на 20.

    как разбить на назначения? что-то в логике постановки задачи не то...
    • #5
    • 08.06.2015 08:46
    0
    да простая задача.
    нужно сворачивать тч по тем колонкам, которые не должны потеряться.
    потом по порядку идем по таблице ексцель и вычитаем количества из свернутой таблицы тч.
    в конце получаем эту свернутую таблицу тч с остатками не вычтенными либо черезчур вычтенными.
    для удобства можно завести в таблице (свернутой) тч две колонки (вычли и разница типа как план, факт в инвентаризации)

    анализируем в конце эту тч таблицу и бинго.

    как партии, например, в 7.7 списывались (ну так. в голову пришло.)

    автор - пишите - подумаем.

    я бы еще пару исправлений для удобства в обработку внес.
    • #6
    • 08.06.2015 10:50
    0
    Николай
    анализируем в конце эту тч таблицу и бинго.


    замечательно, в результате анализа оказывается что в файле больше количество, а в заказе такая номенклатура двумя строками... и что делать будете???
    • #7
    • 08.06.2015 12:24
    0
    m-serg74
    замечательно, в результате анализа оказывается что в файле больше количество, а в заказе такая номенклатура двумя строками... и что делать будете???

    очень хороший вопрос!
    обратно в ТЧ документа эта разница должна передаться в виде ОТДЕЛЬНОЙ строки БЕЗ НАЗНАЧЕНИЯ

    и, предполагая следующий вопрос: если из файла будет передаваться МЕНЬШЕЕ количество, а в заказе будет БОЛЕЕ одной строки одного товара с разным назначением, тогда количество должно вычитаться сначала из строки БЕЗ НАЗНАЧЕНИЯ, а затем из строки с самой ПОЗДНЕЙ ДАТОЙ НАЗНАЧЕНИЯ и т.д.
    • #8
    • 08.06.2015 12:32
    0
    Ну вот теперь всё ясно полностью... а то все готовы сделать, а как сделать вот только выяснили :)
    • #9
    • 08.06.2015 12:40
    • Отредактировано: 08.06.2015 12:44:18
    0
    m-serg74
    замечательно, в результате анализа оказывается что в файле больше количество, а в заказе такая номенклатура двумя строками... и что делать будете???


    излишек добавляем новой строкой без назначения.
    т.к. назнаение это типа заказ покупателя.
    ну а вообще на усмотрение пользователя можно сделать.
    либо только по назначениям заполнять, а остальное откидывать либо добавлять в заказ поставщику излишки но без назначения.

    что не так?


    я вообще изначально так задачу и видел.

    только вопрос. почему сначала вычитаем из без назначения?
    по логике нужно сначала закрывать заказы покупателей. или я не туда?
    • #10
    • 08.06.2015 12:58
    0
    Николай
    я вообще изначально так задачу и видел.

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


    вот в этом и фикус: зачем гадать, если есть заказчик с конкретным пожеланием?
    • #11
    • 08.06.2015 13:06
    0
    m-serg74
    вот в этом и фикус: зачем гадать, если есть заказчик с конкретным пожеланием?


    ну это понятно.

    тут еще момент.

    что-то я не понял - характеристики используются?
    судя по коду (таблица сворачивается с учетом хар-ик) - используются.
    А в таблице ексель их опять же нет. тут как?

    автор вы где?
    • #12
    • 08.06.2015 13:16
    0
    Николай
    А в таблице ексель их опять же нет. тут как?


    характеристика в БД = артикул в файле, вроде как
    • #13
    • 08.06.2015 13:26
    0
    m-serg74
    характеристика в БД = артикул в файле, вроде как


    это то понятно - как сопоставить? (или приоритет какой) тут в части характеристик
    • #14
    • 08.06.2015 14:32
    0
    Николай
    только вопрос. почему сначала вычитаем из без назначения?
    по логике нужно сначала закрывать заказы покупателей. или я не туда?

    потому что эти позиции менее всего важны
    у Вас не совсем правильное понимание (или изложение) терминологии: "закрывать" - значит "погашать" (действительно в первую очередь нужно погашать заказы клиентов, сначала самые ранние, потом те, что были позже); а "вычитать" надо количество из табличной части документа - если оно там станет МЕНЬШЕ, чем было изначально (до сравнения обработкой), естественно, погасить полностью строку мы не сможем

    Николай
    что-то я не понял - характеристики используются?
    судя по коду (таблица сворачивается с учетом хар-ик) - используются.
    А в таблице ексель их опять же нет. тут как?

    смотрим КОД обработки и анализируем....
    		Если ЗначениеЗаполнено(СтрокаЗаказа.Характеристика) тогда
    			СписокАртикулПоставщика = ВернутьАртикулПоставщикаХарактеристики(Объект.ЗаказПоставщику.Партнер, СтрокаЗаказа.Характеристика);
    		иначе
    			СписокАртикулПоставщика = ВернутьАртикулПоставщикаНоменклатуры(Объект.ЗаказПоставщику.Партнер, СтрокаЗаказа.Номенклатура);
    		конецесли;
    	
    		Пока СписокАртикулПоставщика.Следующий() цикл
    			НоваяСтрокаТаблицы.АртикулПоставщика = СписокАртикулПоставщика.Артикул;
    			Отбор = Новый Структура();
    			Отбор.Вставить("Артикул", СписокАртикулПоставщика.Артикул);
    			Строки = ТаблицаДанных.НайтиСтроки(Отбор);
    

    сопоставление идет по "артикулу поставщика", который "зашит" в самой номенклатуре, либо характеристиках номенклатуры - в зависимости от этого используются функции ВернутьАртикулПоставщикаХарактеристики() или ВернутьАртикулПоставщикаНоменклатуры()
    • #15
    • 08.06.2015 14:52
    • Отредактировано: 08.06.2015 15:05:21
    0
    Николай
    сопоставление идет по "артикулу поставщика", который "зашит" в самой номенклатуре, либо характеристиках номенклатуры - в зависимости от этого используются функции ВернутьАртикулПоставщикаХарактеристики() или ВернутьАртикулПоставщикаНоменклатуры()



    я прекрасно умею читать код.

    по какой характеристике еще.
    если у вас в настройке у обработке даже не предусмотрен ввод номера колонки характеристики в таблице ексель.

    Видимо хотели на перед учесть, но не допинали.

    а - стоп - пардон

    не понял сначала идею
    еще раз пардон.
    только нафига такие запросы с выбором всего что можно.?
    • #16
    • 08.06.2015 15:14
    • Отредактировано: 08.06.2015 15:54:48
    0
    и, я так понял, у вас счас не предусмотрена ситуация, когда позиция номенклатуры не найдена.
    т.е. если она есть в екселе, но нет такой позиции с таким артикулом в номенклатуре поставщика
    • #17
    • 08.06.2015 15:58
    0
    Николай
    и, я так понял, у вас счас не предусмотрена ситуация, когда позиция номенклатуры не найдена.

    снова мимо))
    смотрим в табличную часть обработки в поле "ТипНесоответствия" - смотрим по КОДу, какие значения оно может принимать и в каких случаях
    • #18
    • 08.06.2015 17:45
    0
    Николай
    смотрим в табличную часть обработки в поле "ТипНесоответствия" - смотрим по КОДу, какие значения оно может принимать и в каких случаях


    ну да смотрю и вижу, что в этом случае в таблицу проставляется только наименование (еще пару реквизитов типа цена, артикул, сумма, ТипНесоответствия), а вот Номенклатура то не заполняется.
    В документ ужо не попадет.

    и еще нашел такое в коде:

    Функция СоздатьДокументы

    есть такое условие

    Если ЗначениеЗаполнено(СтрокаТаблицы.Номенклатура) И ЗначениеЗаполнено(СтрокаТаблицы.Характеристика) тогда

    только при его выполнении добавляется новая строка в документ (ну это уже после очистки ТЧ).

    А если в таблице обработки нет характеристики?
Яндекс-директ
Для участия в обсуждении Вам необходимо авторизоваться либо   зарегистрироваться