Здравствуйте. Вот дополнение к вопросу https://forum.infostart.ru/forum9/topic266650 . Может быть кому пригодится =). Прошу помидорами не забрасывать :D
По теме из базы знаний
- Проверка единиц измерения в документе "Установка цен номенклатуры"
- Проверка применения упаковок единиц измерения
- "Особенности" коэффициентов единиц измерения в 1С: Управление нашей фирмой
- 1С:ERP: учет в двух единицах измерения на примере ювелирного производства
- Не установлено значение одного из следующих свойств: Единица измерения
Найденные решения
&НаКлиенте
Процедура Загрузить(Команда)
// Вставить содержимое обработчика.
ЗагрузитьИзDBF();
ТабОшибокЕдИзмНоменклатуры.Очистить();
Если ПроверкаЕдИзмНоменклатуры Тогда
Для Каждого Строка Из ТЧ Цикл
Товар = СокрЛП(Строка.ТоварНаим);
//////Данные таблицы значений, заполненной из дбф файла;
КодНомПДКС = СокрЛП(Строка.ТоварКод);
КодЕдИзмПДКС = СтрЗаменить(СокрЛП(Строка.КодЕдИзмПДКС),"""","");
/////Данные, полученные с помощью функций
Номенклатура1 = ПолучитьНоменклатуру(КодНомПДКС);
НаимЕдИзмПДКС = ПолучитьНаименованиеКлассификатора(КодЕдИзмПДКС);
КодЕдИзм1С = Код1СПолучить(Номенклатура1);
ЕдИзм1СНаим = ЕдИзм1СПолучить(Номенклатура1);
/////Заполнение табличной части
ТекСтрТабОшибокЕдИзмНоменклатуры = ТабОшибокЕдИзмНоменклатуры.Добавить();
Если Не КодЕдИзм1С=КодЕдИзмПДКС Тогда
ТекСтрТабОшибокЕдИзмНоменклатуры.Номенклатура = Номенклатура1;
ТекСтрТабОшибокЕдИзмНоменклатуры.ЕдИзм1С = ЕдИзм1СНаим;
ТекСтрТабОшибокЕдИзмНоменклатуры.ЕдИзмПарадокс = НаимЕдИзмПДКС;
Если Не ЗначениеЗаполнено(ТекСтрТабОшибокЕдИзмНоменклатуры.ЕдИзм1С) Тогда ////Проверка на пустое значение
ТекСтрТабОшибокЕдИзмНоменклатуры.РезультатПроверки = ("Ваш текст");
ИначеЕсли Не КодЕдИзм1С=КодЕдИзмПДКС Тогда
ТекСтрТабОшибокЕдИзмНоменклатуры.РезультатПроверки = ("Ваш текст");
КонецЕсли;
КонецЕсли;
КонецЦикла;
ПустыеСтрокиУдалить();
КонецЕсли;
КонецПроцедуры
//////Получаем данные для переменных
&НаСервере
Функция ПолучитьНоменклатуру(КодНомПДКС)
Номенклатура = Справочники.Номенклатура.НайтиПоКоду(КодНомПДКС);
Возврат Номенклатура;
КонецФункции
&НаСервере
Функция ПолучитьКодКлассификатора(Номенклатура1)
ЕдиницыИзмеренияКод = Справочники.КлассификаторЕдиницИзмерения;
НайденнаяСсылка = ЕдиницыИзмеренияКод.НайтиПоНаименованию(Номенклатура1);
КодЕдИзмПДКС = НайденнаяСсылка.Код;
Возврат КодЕдИзмПДКС;
КонецФункции
&НаСервере
Функция ПолучитьНаименованиеКлассификатора(КодЕдИзмПДКС)
ЕдИзм = Справочники.КлассификаторЕдиницИзмерения;
НаимЕдИзмПДКС = ЕдИзм.НайтиПоКоду(КодЕдИзмПДКС);
Возврат НаимЕдИзмПДКС;
КонецФункции
&НаСервере
Функция Код1СПолучить(Номенклатура1)
Номенклатура1 = Справочники.Номенклатура;
НайденнаяСсылка = Номенклатура1.НайтиПоНаименованию(Номенклатура1);
ЕдИзм1СКод = НайденнаяСсылка.ЕдиницаИзмерения.Код;
Возврат ЕдИзм1СКод;
КонецФункции
&НаСервере
Функция ЕдИзм1СПолучить(Номенклатура1)
ЕдИзм1СНаим = Номенклатура1.ЕдиницаИзмерения;
Возврат ЕдИзм1СНаим;
КонецФункции
//////Удаленяем пустых строк из таблицы значений
&НаСервере
Процедура ПустыеСтрокиУдалить()
Отбор = Новый Структура("Номенклатура",Справочники.Номенклатура.ПустаяСсылка());
МассивПустыхСтрок = ТабОшибокЕдИзмНоменклатуры.НайтиСтроки(Отбор);
Для Каждого СтрокаМассива из МассивПустыхСтрок Цикл
ТабОшибокЕдИзмНоменклатуры.Удалить(СтрокаМассива);
КонецЦикла;
КонецПроцедуры
//////Заменяем единицы измерений в справочнике номенклатура на единицы измерений из файла ДБФ
&НаСервере
Процедура ЗаменитьЕдИзм()
// Вставить содержимое обработчика.
Для Каждого Строка Из ТабОшибокЕдИзмНоменклатуры Цикл
Номенклатура1 = Строка.Номенклатура;
ЕдИзмПДКС = Строка.ЕдИзмПарадокс;
НоменклатураОбъект = Номенклатура1.ПолучитьОбъект();
НоменклатураОбъект.ЕдиницаИзмерения = ЕдИзмПДКС;
НоменклатураОбъект.Записать();
Если Не ЗначениеЗаполнено(Строка.ЕдИзмПарадокс) Тогда
Продолжить;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
&НаКлиенте
Процедура Загрузить(Команда)
// Вставить содержимое обработчика.
ЗагрузитьИзDBF();
ТабОшибокЕдИзмНоменклатуры.Очистить();
Если ПроверкаЕдИзмНоменклатуры Тогда
Для Каждого Строка Из ТЧ Цикл
Товар = СокрЛП(Строка.ТоварНаим);
//////Данные таблицы значений, заполненной из дбф файла;
КодНомПДКС = СокрЛП(Строка.ТоварКод);
КодЕдИзмПДКС = СтрЗаменить(СокрЛП(Строка.КодЕдИзмПДКС),"""","");
/////Данные, полученные с помощью функций
Номенклатура1 = ПолучитьНоменклатуру(КодНомПДКС);
НаимЕдИзмПДКС = ПолучитьНаименованиеКлассификатора(КодЕдИзмПДКС);
КодЕдИзм1С = Код1СПолучить(Номенклатура1);
ЕдИзм1СНаим = ЕдИзм1СПолучить(Номенклатура1);
/////Заполнение табличной части
ТекСтрТабОшибокЕдИзмНоменклатуры = ТабОшибокЕдИзмНоменклатуры.Добавить();
Если Не КодЕдИзм1С=КодЕдИзмПДКС Тогда
ТекСтрТабОшибокЕдИзмНоменклатуры.Номенклатура = Номенклатура1;
ТекСтрТабОшибокЕдИзмНоменклатуры.ЕдИзм1С = ЕдИзм1СНаим;
ТекСтрТабОшибокЕдИзмНоменклатуры.ЕдИзмПарадокс = НаимЕдИзмПДКС;
Если Не ЗначениеЗаполнено(ТекСтрТабОшибокЕдИзмНоменклатуры.ЕдИзм1С) Тогда ////Проверка на пустое значение
ТекСтрТабОшибокЕдИзмНоменклатуры.РезультатПроверки = ("Ваш текст");
ИначеЕсли Не КодЕдИзм1С=КодЕдИзмПДКС Тогда
ТекСтрТабОшибокЕдИзмНоменклатуры.РезультатПроверки = ("Ваш текст");
КонецЕсли;
КонецЕсли;
КонецЦикла;
ПустыеСтрокиУдалить();
КонецЕсли;
КонецПроцедуры
//////Получаем данные для переменных
&НаСервере
Функция ПолучитьНоменклатуру(КодНомПДКС)
Номенклатура = Справочники.Номенклатура.НайтиПоКоду(КодНомПДКС);
Возврат Номенклатура;
КонецФункции
&НаСервере
Функция ПолучитьКодКлассификатора(Номенклатура1)
ЕдиницыИзмеренияКод = Справочники.КлассификаторЕдиницИзмерения;
НайденнаяСсылка = ЕдиницыИзмеренияКод.НайтиПоНаименованию(Номенклатура1);
КодЕдИзмПДКС = НайденнаяСсылка.Код;
Возврат КодЕдИзмПДКС;
КонецФункции
&НаСервере
Функция ПолучитьНаименованиеКлассификатора(КодЕдИзмПДКС)
ЕдИзм = Справочники.КлассификаторЕдиницИзмерения;
НаимЕдИзмПДКС = ЕдИзм.НайтиПоКоду(КодЕдИзмПДКС);
Возврат НаимЕдИзмПДКС;
КонецФункции
&НаСервере
Функция Код1СПолучить(Номенклатура1)
Номенклатура1 = Справочники.Номенклатура;
НайденнаяСсылка = Номенклатура1.НайтиПоНаименованию(Номенклатура1);
ЕдИзм1СКод = НайденнаяСсылка.ЕдиницаИзмерения.Код;
Возврат ЕдИзм1СКод;
КонецФункции
&НаСервере
Функция ЕдИзм1СПолучить(Номенклатура1)
ЕдИзм1СНаим = Номенклатура1.ЕдиницаИзмерения;
Возврат ЕдИзм1СНаим;
КонецФункции
//////Удаленяем пустых строк из таблицы значений
&НаСервере
Процедура ПустыеСтрокиУдалить()
Отбор = Новый Структура("Номенклатура",Справочники.Номенклатура.ПустаяСсылка());
МассивПустыхСтрок = ТабОшибокЕдИзмНоменклатуры.НайтиСтроки(Отбор);
Для Каждого СтрокаМассива из МассивПустыхСтрок Цикл
ТабОшибокЕдИзмНоменклатуры.Удалить(СтрокаМассива);
КонецЦикла;
КонецПроцедуры
//////Заменяем единицы измерений в справочнике номенклатура на единицы измерений из файла ДБФ
&НаСервере
Процедура ЗаменитьЕдИзм()
// Вставить содержимое обработчика.
Для Каждого Строка Из ТабОшибокЕдИзмНоменклатуры Цикл
Номенклатура1 = Строка.Номенклатура;
ЕдИзмПДКС = Строка.ЕдИзмПарадокс;
НоменклатураОбъект = Номенклатура1.ПолучитьОбъект();
НоменклатураОбъект.ЕдиницаИзмерения = ЕдИзмПДКС;
НоменклатураОбъект.Записать();
Если Не ЗначениеЗаполнено(Строка.ЕдИзмПарадокс) Тогда
Продолжить;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот