Замена единиц измерения остатков




Принцип обмена данными из 1С с сайтом (на MySQL) и выдачи (публикации) этих данных по запросу.
PHP-Скрипт автоматической загрузки данных из файла данных в формате CSV в базу данных сайта работающего на WordPress.

В продолжение моей темы: 1С:Альфа-Авто Автосалон Автосервис: обмен с сайтом.
С помощью данного скрипта можно загружать в автоматическом режиме, по расписанию, данные сервисных книжек (ремонтов авто) из 1С:Альфа-Авто Автосалон Автосервис.
Также можно загружать данные в ручном режиме: для этого делается скрытая страница, где размещается специальная кнопка.
Комментарии размещенные внутри скрипта разъяснят логику и порядок действия.
Комментарии с "/////    echo" использовались для отладки.
Дополнительно создана таблица для журналирования результатов загрузки данных.
Скрипт включает в себя защиту от SQL инъекций (думаю безопасность соблюдена в полной мере).
В кратце:
1. Пишется скрипт, который запускает этот.
2. Создается регламентное задание в WordPress, по которому запускается скрипт из п.1. 
3. Этот скрипт осуществляет проверку на существование файла обмена в папке.
4. Если данные не новые, загрузка не производится.
5. Если данные новые, очищается таблица сервисных книжек.
6. Загружаются новые данные.

Собственно сам скрипт:

<?php // Полная загрузка сервисных книжек, создан 2024-01-05 12:44:55

global $wpdb2;
global $failure;
global $file_hist;

/////  echo '<H2><b>Старт загрузки</b></H2><br>';

$failure=FALSE;
//подключаемся к базе
$wpdb2 = include_once 'connection.php'; ; // подключаемся к MySQL
// если не удалось подключиться, и нужно оборвать PHP с сообщением об этой ошибке
if (!empty($wpdb2->error))
{
/////   echo '<H2><b>Ошибка подключения к БД, завершение.</b></H2><br>';
$failure=TRUE;
wp_die( $wpdb2->error );
}

$m_size_file=0;
$m_mtime_file=0;
$m_comment='';
/////проверка существования файлов выгрузки из 1С
////файл выгрузки сервисных книжек
$file_hist = ABSPATH.'/_1c_alfa_exchange/AA_hist.csv';
if (!file_exists($file_hist))
{
/////   echo '<H2><b>Файл обмена с сервисными книжками не существует.</b></H2><br>';
$m_comment='Файл обмена с сервисными книжками не существует';
$failure=TRUE;
}

/////инициируем таблицу лога
/////если не существует файла то возврат и ничего не делаем
if ($failure){
///включает защиту от SQL инъекций и данные можно передавать как есть, например: $_GET['foo']
/////   echo '<H2><b>Попытка вставить запись в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>$m_comment));
wp_die();
/////    echo '<H2><b>Возврат в начало.</b></H2><br>';
return $failure;
}
/////проверка лога загрузки, что бы не загружать тоже самое
$masiv_data_file=stat($file_hist);   ////передаем в массив свойство файла
$m_size_file=$masiv_data_file[7];    ////получаем размер файла
$m_mtime_file=$masiv_data_file[9];   ////получаем дату модификации файла
////создаем запрос на получение последней удачной загрузки
////выбираем по штампу времени создания (редактирования) файла загрузки AA_hist.csv, $m_mtime_file

/////   echo '<H2><b>Размер файла: '.$m_size_file.'</b></H2><br>';
/////   echo '<H2><b>Штамп времени файла: '.$m_mtime_file.'</b></H2><br>';
/////   echo '<H2><b>Формирование запроса на выборку из лога</b></H2><br>';
////препарируем запрос
$text_zaprosa=$wpdb2->prepare("SELECT * FROM `vin_logs` WHERE `last_mtime_upload` = %s", $m_mtime_file);
$results=$wpdb2->get_results($text_zaprosa);

if ($results)
{   foreach ( $results as $r)
{
////если штамп времени и размер файла совпадают, возврат
if (($r->last_mtime_upload==$m_mtime_file) && ($r->last_size_upload==$m_size_file))
{////echo '<H2><b>Возврат в начало, т.к. найдена запись в логе.</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>'Загрузка отменена, новых данных нет, т.к. найдена запись в логе.'));
wp_die();
return $failure;
}
}
}
////если данные новые, пишем в лог запись о начале загрузки
/////echo '<H2><b>Попытка вставить запись о начале загрузки в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>0, 'last_size_upload'=>$m_size_file, 'comment'=>'Начало загрузки'));

////очищаем таблицу
$clear_tbl_zap=$wpdb2->prepare("TRUNCATE TABLE %s", 'vin_history');
$clear_tbl_zap_repl=str_replace("'","`",$clear_tbl_zap);
$results=$wpdb2->query($clear_tbl_zap_repl);
/////   echo '<H2><b>Очистка таблицы сервисных книжек</b></H2><br>';
if (empty($results))
{
/////   echo '<H2><b>Ошибка очистки таблицы книжек, завершение.</b></H2><br>';
//// если очистка не удалась, возврат
$failure=TRUE;
wp_die();
return $failure;
}

////загружаем данные
$table='vin_history';         // Имя таблицы для импорта
//$file_hist Имя CSV файла, откуда берется информация     // (путь от корня web-сервера)
$delim=';';          // Разделитель полей в CSV файле
$enclosed='"';      // Кавычки для содержимого полей
$escaped='\

69 Comments

  1. Romarius

    так понимаю, что изменяете количество в регистрах, а в документах коефициенты и количество оставляете?

    Reply
  2. dryms

    Вы правильно понимаете. Количество и коэффициенты в документах и не требуется менять. Зачем? В документе может быть указана любая ед. изм., но при проведении в регистрах она переводится в ед. хранения остатков. По поводу коэффициентов. если мы не меняем базовую ед. измерения, то коэффициенты остаются те же. Коэффициент- это отношение ед. изм. к базовой ед. изм. Если поменять базовую ед. изм, то в старых документах обработка коэффициенты не поменяет. Но в нашей организации и не перепроводят документы в закрытом периоде.

    Reply
  3. Pashkatancor

    пересчет сделала, единицу не поменяла! ругнулась на запрет изменения ед хран ост! теперь вместо 17т у меня 17000т!

    Reply
  4. dryms

    Что за конфигурация? Может прав нету?? Нужны полные права. Не поленитесь поставить плюсик, если пригодилась обработина))

    Reply
  5. recon
    Если ИзменитьЕдиницуХрОст Тогда
    СпрОбъект=Номенклатура.ПолучитьОбъект();
    СпрОбъект.ЕдиницаХраненияОстатков=ЕдИзмХрОстИзмененная;
    СпрОбъект.Записать();
    Сообщить(«Единица измерения полностью изменена!»);
    КонецЕсли;

    В типовых конфигурациях для Украины проверка на запись единицы измерения стоит в модуле объекта справочника Номенклатура. Поэтому приведенный выше код вызовет ошибку и не запишет номенклатуру.

    Если Не Услуга И Ссылка.ЕдиницаХраненияОстатков <> ЕдиницаХраненияОстатков И ПолныеПрава.Номенклатура_СуществуютСсылки(Ссылка, СуществуютСсылки) Тогда
    ТекстСообщения = «Единица «»» + СокрЛП(Ссылка.ЕдиницаХраненияОстатков) + «»» является единицей хранения остатков для «»» + Наименование + «»»
    |и уже участвует в товародвижении.
    |Изменить эту единицу уже нельзя!»;
    ОбщегоНазначения.СообщитьОбОшибке(ТекстСообщения, Отказ);
    КонецЕсли;

    Поставьте хотя бы ОбменДанными.Загрузка = Истина при записи номенклатуры,чтобы не попадать на проверки в модуле объекта.

    Reply
  6. dryms

    (5)Грамотное замечание! Спс, подправлю попозже.

    Reply
  7. dryms

    +(3)(5)(6) Не поленился, подправил ошибку, загрузил обновленную обработку

    Reply
  8. oxana1

    (7) залили небось конвертированную под 8,2?:)

    под 8,1 в УТ 10.3 не открылась…

    плюс поставлю, дайте хоть посмотреть))))

    Reply
  9. oxana1

    попробовала на 8.2, выдало ошибку

    {Форма.Форма.Форма(147)}: Ошибка при вызове метода контекста (Выполнить)

    Возврат Запрос.Выполнить().Выгрузить();

    по причине:

    по причине:

    {(1, 1)}: Ожидается выражение «ВЫБРАТЬ»

    Reply
  10. oxana1

    еще вопрос, у самой номенклатуры должна изменится единиица хранения остатков? может у меня из-за ошибки не изменилось? запустила несколько раз подряд обработку, уже кол-ва с 1 шт дошли до 0,0001, а у номенклатуры все штуки в единицах…

    есть такое сообщение:

    Для номенклатуры Hama 47665 Mechanical Timer «Time Control III» ед. хр. ост. шт. участвует в следующих Движениях Регистра накопления—————

    то есть не пойму, поправили вы в (7) или нет… и что вы залили, собсно)

    Reply
  11. Pashkatancor

    теперь 100% плюс!

    Reply
  12. buhslugba

    Можно узнать, а единицу хранения в отчетах меняет в номерклатуре?

    Reply
  13. buhslugba

    СПАСИБО ГЛЮКИ ПРОШЛИ!!! Это я все ручками натворила… Выручили.

    Reply
  14. AfterEarth

    Спасибо, пригодилось!

    Reply
  15. wmalex86

    Очень полезная штука…У меня был клиент, дак у него таких позиций ваще дофига (больше половины всей номенклатуры)))) эта обработочка конечно помогла, но я столкнулся еще и с другой проблемой, там был косяк еще с ед. хранения остатков

    Reply
  16. wmalex86

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

    Reply
  17. nkvg_a

    Спасибо. Мне помогла ваша обработка.

    Reply
  18. drat9

    Спасибо, полезная вещица! )

    Reply
  19. ADM1NZ

    Спасибо за ваш труд!

    Reply
  20. Requiem

    Если пишите что под 8.1 и 8.2 то должно быть 2 файла

    Reply
  21. djvu

    по моему, проще пересортицу сделать, с соответсвюущими корректировками на пересчет единиц измерения?

    Reply
  22. Артано

    ёшкин кот, и эти поделки продаются? о_О У меня есть подобная обработка. Только она позволяет вообще всю номенклатуру и любые единицы исправить скопом (например если полетели единицы в товарах), а замена для конкретной номенклатуры прикручена как доп. функционал

    Reply
  23. Lyns_owner

    ЭТО стоит денег? о_О

    Reply
  24. Leon99

    Есть обработка специальная, на форуме этом есть (забыл как звать ее (( )

    Reply
  25. dryms

    Налетели халявщики)

    Reply
  26. dryms

    (22)(23) Добавил возможность массово менять + различные улучшения. За труд вообще-то платят, к тому же большинство моих публикаций бесплатны. Никто вас не заставляет платить, можете вместо этого потратить свое время и изобрести велосипед, сэкономив 1000 р. Я не против конкуренции, если вы готовы сделать лучше, а не только сообщения на форум писать.

    Reply
  27. kauksi

    Ошибочно завели номенклатуру . С единицей Хранения остатков Упаковка Коэф=1;

    Надо Упаковка Коэф=9

    Базовая штуки.

    Не дает поменять — «НЕВЕРНО указан новый или текущий коэффициент единицы измерения»

    текущий 1 новый 9 что неверно???

    В чем смысл обработки???

    Reply
  28. dryms

    У вас 1 упаковка =1 штука?

    Reply
  29. kauksi

    да, сейчас 1шт = 1уп

    надо 1уп=9шт

    Добавил единицу измерения упак. с коэфф. 9, в обработке выбрал новую ед изм. упак, нажимаю внизу в обработке «Изменить»

    Выдает «НЕВЕРНО указан новый или текущий коэффициент единицы измерения»

    Reply
  30. kauksi

    Причем в моем случае мне и в самом документе надо изменить количество/коэффициент, а не только в движениях чтобы при перепроведении потом все было правильно.

    Например так

    Было 10 упакСтар к=1 * 90 руб

    Стало 1 упакНов к=9 * 90 руб

    Reply
  31. fenixnow

    (9), Аналогичная проблема на УТ 10.3

    Reply
  32. dryms

    (9)(32) К сожалению, УТ 10.3 у меня нету, поэтому не имею возможности посмотреть.(( Я бы подправил… Если кто-нибудь подправил самостоятельно, прошу выложить код

    Reply
  33. fenixnow

    В УТ10.3 нет регистров бухгалтерии, при коментрировании этих кусков кода все становиться на свои места

    Reply
  34. dryms

    (34)Спасибо, попозже подправлю

    Reply
  35. ronval

    Было:

    Если (СпрЕдИзм.Коэффициент<>1 и СпрЕдИзм.ЕдиницаПоКлассификатору=Стр.БазоваяЕдиницаИзмерения)
    Или   (Стр.КоэффициентТек<>1 и Стр.ТекущаяЕдиницаИзмерения.ЕдиницаПоКлассификатору=Стр.БазоваяЕдиницаИзмерения)или
    (СпрЕдИзм.Коэффициент=1 и СпрЕдИзм.ЕдиницаПоКлассификатору<>Стр.БазоваяЕдиницаИзмерения)
    Или   (Стр.КоэффициентТек=1 и Стр.ТекущаяЕдиницаИзмерения.ЕдиницаПоКлассификатору<>Стр.БазоваяЕдиницаИзмерения)Тогда
    Сообщить(«Строка «+Стр.НомерСтроки+»Для номенклатуры «+Стр.Номенклатура+» НЕВЕРНО указан новый или текущий коэффициент единицы измерения «+СпрЕдИзм+».Единица измерения не     заполнена!»,СтатусСообщения.ОченьВажное);
    //МассивОшибок.Добавить(Стр.НомерСтроки);
    Продолжить;
    КонецЕсли;

    Подправил (добавил .Наименование):

    Если (СпрЕдИзм.Коэффициент<>1 и СпрЕдИзм.ЕдиницаПоКлассификатору.Наименование=Стр.БазоваяЕдиницаИзмерения)
    Или   (Стр.КоэффициентТек<>1 и Стр.ТекущаяЕдиницаИзмерения.ЕдиницаПоКлассификатору.Наименование=Стр.БазоваяЕдиницаИзмерения)или
    (СпрЕдИзм.Коэффициент=1 и СпрЕдИзм.ЕдиницаПоКлассификатору.Наименование<>Стр.БазоваяЕдиницаИзмерения)
    Или   (Стр.КоэффициентТек=1 и Стр.ТекущаяЕдиницаИзмерения.ЕдиницаПоКлассификатору.Наименование<>Стр.БазоваяЕдиницаИзмерения)Тогда
    Сообщить(«Строка «+Стр.НомерСтроки+»Для номенклатуры «+Стр.Номенклатура+» НЕВЕРНО указан новый или текущий коэффициент единицы измерения «+СпрЕдИзм+».Единица измерения не заполнена!»,СтатусСообщения.ОченьВажное);
    //МассивОшибок.Добавить(Стр.НомерСтроки);
    Продолжить;
    КонецЕсли;

    И усе.

    Reply
  36. alexsiswx

    А в УПП регистры РАУЗ корректно отрабатывает? Ведь в регистрах РАУЗ не прямые ссылки.

    Или к примеру, если править регистр Заказы покупателей, то идет ли пересчет цен. Ведь если из тонны в кг переводим то и цена должна меняться. Изменение цен, конечно, не критично в этом регистре, но пользователи есть пользователи.

    Reply
  37. dryms

    (37) Что-то я не пойму, зачем менять цены??? было 1т=10000 руб, стало 1000 кг=10000 руб. В чем разница?

    Reply
  38. dryms

    (36) А это зачем? наменование сравнивается с ссылкой? Стр.ТекущаяЕдиницаИзмерения.ЕдиницаПоКлассификатору.Наименование<>Стр.БазоваяЕдиницаИзмерения

    по идее тут всегда истина будет

    Reply
  39. alexsiswx

    Есть цена за 1 кг = 10 руб. и если ее пересчитать с коэф. то будет цена за 1 т = 10000 руб.

    Reply
  40. alexsiswx

    Прошу не путать с суммой. Ее править не надо. С Этим согласен.

    Reply
  41. alexsiswx

    А как на счет регистров РАУЗ?

    Reply
  42. dryms

    (40) Вы, наверное , не поняли для чего нужна обработка. Почитайте описание. Изменяется КОЛИЧЕСТВО.

    Reply
  43. ronval

    (39)

    дак сравниваются строковые значения (в отладчике словил). Лично у меня сработала данная обработка после изменения. Кстати сбасибо за обработку…пригодилась 🙂

    Reply
  44. dryms

    (44) Хотя, да у 1с есть такая фича, если слева в выражении строка, то справа значения приводятся к строке. Если написать выражение типа а=»Номенклатура «+ссылка, то система приведет ссылку к представлению ссылки

    Reply
  45. Гость

    Возможно, кто-нибудь сталкивался с ситуацией в УТ 10.3, когда единица хранения остатков задана с коэффициентом, отличным от 1,000…

    В моем случае сам натворил такую картину: базовая единица — кг (коэф. 1,000), а единица хранения остатков — т (коэф. 1000,000). Расчет был благим: ввести позже единицу измерения шт., которым необходима точность в граммах. Но при оформлении типовой выгрузки из УТ10.3 в БП 2.0 вышло, что единицы хранения делятся на коэффициент и представляются в кг. В результате в УТ цены и количества во всех документах указаны в тоннах, а при перегрузке в бухгалтерию все переводится в килограммы (цены также меняются из руб./тн в руб./кг) — то есть весь бухучет плывет.

    Хотел опробовать эту обработку, но новые единицы-коэффициенты только усложняют картину. Может быть, дадите совет по такой ситуации? Сейчас мечтаю просто получить все так, как было в старой базе: базовые единицы — т, единица хранения остатков — т (коэф. 1,000).

    Reply
  46. dryms

    (46) В вашем случае, если я правильно понимаю, нужно просто заменить базовую единицу на тонны и у ед. измерения тонны поставить коэффициент 1 и все..

    Reply
  47. dimawar
     Если (Стр.КоэффициентНов<>1 и Стр.НоваяЕдиницаИзмерения.ЕдиницаПоКлассификатору=Стр.БазоваяЕдиницаИзмерения)
    Или   (Стр.КоэффициентТек<>1 и Стр.ТекущаяЕдиницаИзмерения.ЕдиницаПоКлассификатору=Стр.БазоваяЕдиницаИзмерения)
    //или
    //(Стр.КоэффициентНов=1 и Стр.НоваяЕдиницаИзмерения.ЕдиницаПоКлассификатору<>Стр.БазоваяЕдиницаИзмерения)
    //Или   (Стр.КоэффициентТек=1 и Стр.ТекущаяЕдиницаИзмерения.ЕдиницаПоКлассификатору<>Стр.БазоваяЕдиницаИзмерения)

    Я закомментировал вторую проверку, т.к. непонятно зачем она нужна. Да и вообще мне не понятен смысл это проверки.

    Автор, объясните пожалуйста, зачем?

    Reply
  48. dryms

    (48)»Защита от дурака»

    Reply
  49. Linsades

    А как на счет регистров РАУЗ?

    Почему нет ответа на данный вопрос?

    Reply
  50. buval

    Спасибо за обработку пробую в 10,3

    Reply
  51. Нейросоучастник

    Обработка в принципе рабочая. Но после использования обработки задваиваются (затраиваются и т.д.) записи регистра «СвободныеОстатки» конфигурация УПП 1.3. Так что, будьте внимательны, кто использует СвободныеОстатки и применяет данную обработку. Автору просьба поправить обработку или описание.

    Reply
  52. lrs

    (52) Нейросоучастник,

    Для Свободных остатков, во-первых надо заполнить ресурс «КоличествоСУчетомСерии», во-вторых ОбменДанными = Загрузка позволит избежать задвоения в этом регистре.

    НайденнаяСтрока.Количество=НайденнаяСтрока.Количество*ЕдИзмХрОстНачальная.Коэффициент/ЕдИзмХрОстИзмененная.Коэффициент;
    //{LRS 20131014 добавление
    Если ЗаписиРегистра.Колонки.Найти(«КоличествоСУчетомСерии») <> Неопределено тогда
    НайденнаяСтрока.КоличествоСУчетомСерии = НайденнаяСтрока.Количество;
    КонецЕсли;
    //}
    КонецЕсли;
    КонецЦикла;
    Если ИзменитьЕдиницуХрОст Тогда
    НаборЗаписей.Загрузить(ЗаписиРегистра);
    //{LRS 20131014 добавление
    НаборЗаписей.ОбменДанными.Загрузка = Истина;
    //}
    НаборЗаписей.Записать();
    

    Показать

    Так же крайне желательно, чтобы не было мучительно больно, когда обработка вылетит на середине, обрамить обработку каждой единицы в конструкцию НачатьТранзакцию() — ЗафиксироватьТранзакцию().

    Reply
  53. kauksi

    Я так понимаю, обработка полезная, если у единиц разный коэффициент.

    а если просто указаная единица с неверным владельцем, н ос таким же коэффициентом (1:1) чтобы ее заменить, необязательно бегать по регистрам. можно просто перезаписать саму номенклатуру. но как быть с единицей указанной в документах? при проведении конечно будет использоваться новая единица хранения остатков, но и удалить старую нельзя — остануться ссылки в документах..

    Reply
  54. bes-kkm

    Если (Стр.КоэффициентНов<>1 и Стр.НоваяЕдиницаИзмерения.ЕдиницаПоКлассификатору=Стр.БазоваяЕдиницаИзмерения)

    Или (Стр.КоэффициентТек<>1 и Стр.ТекущаяЕдиницаИзмерения.ЕдиницаПоКлассификатору=Стр.БазоваяЕдиницаИзмерения)

    //или

    //(Стр.КоэффициентНов=1 и Стр.НоваяЕдиницаИзмерения.ЕдиницаПоКлассификатору<>Стр.БазоваяЕдиницаИзмерения)

    //Или (Стр.КоэффициентТек=1 и Стр.ТекущаяЕдиницаИзмерения.ЕдиницаПоКлассификатору<>Стр.БазоваяЕдиницаИзмерен

    Reply
  55. bes-kkm

    При конвертирования из 8.0 в 8.1 сохраненных в 8.0 только справочников

    (Справочник номенклатуры, справ. ед. из, классиф. ед изм, валюты и т.п )

    получилась ситуация

    Элемент номенклатуры

    — базовая единица заполнена.

    — Табличная часть (единиц измерения) заполнена.

    НО ЕдиницаДляОтчетов -не выбрана

    ЕдиницаХраненияОстатков — не выбрана

    т.е. поъхоже ссылки на ед. из. утерены при конфертировании.

    Задача проставить каждом элементе номенклатуры в соответствие

    ЕдиницаДляОтчетов и ЕдиницаХраненияОстатков Базовую еденицу Измерения

    Делаю так

    Ссылка = Справочники.Номенклатура.НайтиПоКоду(» Код элемента»);

    Элемент = Ссылка.ПолучитьОбъект();

    Запрос2 = Новый Запрос;

    Запрос2.Текст = «ВЫБРАТЬ

    | ЕдиницыИзмерения.Ссылка,

    | ЕдиницыИзмерения.Владелец,

    | ЕдиницыИзмерения.Код,

    | ЕдиницыИзмерения.Наименование,

    | КлассификаторЕдиницИзмерения.Ссылка КАК Ссылка1,

    | КлассификаторЕдиницИзмерения.Код КАК Код1

    |ИЗ

    | Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения

    | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.КлассификаторЕдиницИзмерения КАК КлассификаторЕдиницИзмерения

    | ПО ЕдиницыИзмерения.ЕдиницаПоКлассификатору = КлассификаторЕдиницИзмерения.Ссылка

    |ГДЕ

    | ЕдиницыИзмерения.Владелец = &Владелец

    | И ЕдиницыИзмерения.ЕдиницаПоКлассификатору.Код = &ЕдиницаИзмПоКл»;

    Запрос2.УстановитьПараметр(«Владелец»,Справочники.Номенклатура.НайтиПоКоду(Ссылка.Код).Ссылка);

    Запрос2.УстановитьПараметр(«ЕдиницаИзмПоКл»,Справочники.КлассификаторЕдиницИзмерения.НайтиПоКоду(Элемент.БазоваяЕдиницаИзмерения.Код).Ссылка );

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

    ВыборкаЭЛ = Результат2.Выбрать();

    Если ВыборкаЭЛ.Количество()=1 Тогда

    Сообщить («Правим этот элемент»,СтатусСообщения.БезСтатуса);

    Элемент.ЕдиницаДляОтчетов = ВыборкаЭЛ.ЕдиницыИзмерения.Ссылка;

    Элемент.ЕдиницаХраненияОстатков = ВыборкаЭЛ.ЕдиницыИзмерения.Ссылка;

    КонецЕсли;

    Элемент.Записать();

    Где я не прав?

    Подскажите пожалуйста!!

    Reply
  56. Famza

    (43) и все-таки менять только количество, ежели в доках есть цена, имхо, не правильно. Надо и цену пересчитывать исходя из уже нового количества и суммы. Нет?

    ЗЫ. Мне помогла обработка при переносе остатков — меняли единицы измерений хранения остатков.

    Reply
  57. adva

    Думаю, подобные обработки выкладывать нельзя, т.к. не понимая сути произведут замену, а последствия выявятся не сразу.

    Reply
  58. lambert

    Обработка не открывается в УТ 10.3 81 что делать?

    Reply
  59. lambert

    Будет ли файл для Платформы 8.1?

    Reply
  60. lambert

    По какой причине может вылазить эта ошибка:

    {Форма.Форма.Форма(180)}: Ошибка при вызове метода контекста (Записать) НаборЗаписей.Записать();

    по причине:

    Запись не верна! Значение поля «Заказ покупателя» не может быть пустым! (Регистр накопления: Заказы покупателей; Номер строки: 1)

    Reply
  61. Артано

    (62) В сообщении об ошибке дана исчерпывающая информация — не заполнено обязательное поле «Заказ покупателя» в записи РН

    Reply
  62. spectre1978

    Народ, на УПП кто-нибудь делал?

    Последствий нет?

    РАУЗ нормально работает после нее?

    Вот думаю — то ли заморчиться, то ли проще будет новую номенклатуру завести

    Reply
  63. dryms

    (64) Я делал на УПП, все работало корректно. Обработка работает практически на любой конфигурации, даже доработанной и самодельной, т.к. там идет анализ и перебор метаданных. ОДНАКО настоятельно рекомендую потестить на копии и посмотреть результат

    Reply
  64. dryms

    (61) Откройте в конфигураторе и конвертируйте обработку на другую платформу. Для этого нужно открыть и сохранить ее. если не будет работать-могу переделать, по идее должна. Обработка хороша тем,что универсальна

    Reply
  65. dryms

    Для управляемых форм честно лень переделывать откройте в «старом» режиме и будет работать

    Reply
  66. Эвелина

    Привет, в КА1.1 Платформа 8.3 :НЕВЕРНО указан новый или текущий коэффициент единицы измерения кг.Запись не произверена!

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

    Reply
  67. dryms

    (68)

    н новый или текущий коэффициент единицы измере

    Посмотрите настройки единиц измерения. Написано, что проблема в коэффициенте. Возможно еще в записях регистра косяк. Лучше воспользуйтесь помощью программиста- он по отладчику поймет где собака зарыта. Это больше для разработчиков обработка

    Reply
  68. guru_bratsk

    Привет. На УТ 10.3 будет работать?

    Reply
  69. dimawar

    (70) да

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *