Удаление номенклатуры
X

Привет дорогой друг

Наш сайт существует и развиваетется за счет рекламы. Пожалуйста, отключите блокировку рекламы AdBlock или подобное, для нашего сайта. Спасибо!
Показано с 1 по 4 из 4
  1. #1
    Пришел за помощью

    Регистрация
    18.08.2023
    Адрес
    Ашхабад
    Сообщений
    22
    Сказал(а) спасибо
    4
    Поблагодарили 0 раз(а) в 0 сообщениях

    По умолчанию Удаление номенклатуры

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

    Дано:
    Платформа 1с 8.3.15.1778
    Конфигурация УНФ 1.6.22.66

    Писал такой код:
    &НаСервере
    Процедура УдНомНаСервере(ИмяФайла)
    ПутьКФайлу = ИмяФайла;
    // Создаем объект для чтения
    Текст = Новый ЧтениеТекста(ПутьКФайлу, КодировкаТекста.UTF8);

    // Читаем файл построчно
    Пока Истина Цикл
    Строка = Текст.ПрочитатьСтроку();
    Сообщить(Строка);
    Если Строка = Неопределено Тогда
    Прервать;
    Иначе
    // Ищем элемент справочника по заданному коду (или другому реквизиту)
    Если Строка = Справочники.Номенклатура.Н айтиПоКоду(Строка) Тогда

    // Помечаем запись на удаление
    Строка.ПометкаУдаления = Истина;
    Строка.Записать();
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;

    Текст.Закрыть();
    КонецПроцедуры




    &НаКлиенте
    Процедура УдНом(Команда)
    ДиалогВыбора = новый ДиалогВыбораФайла(РежимДи� �логаВыбораФайла.Открытие);
    ДиалогВыбора.Заголовок = "Выберите файл";

    ДиалогВыбора.Фильтр = "Текстовый документ, *.txt|*.txt";

    ДиалогВыбора.Множественны� �Выбор=Ложь;

    Если ДиалогВыбора.Выбрать() Тогда
    ИмяФайла = ДиалогВыбора.ПолноеИмяФай� �а;
    КонецЕсли;



    УдНомНаСервере(ИмяФайла);
    КонецПроцедуры

    Он не помечает на удаление. Что-то я написал сам, где-то помог Chat-GPT.
    Я очень сильно начинающий 1С работник. Помогите, или направьте на путь истинный, пожалуйста!
    С Уважением, Пётр Владимирович, Ашхабад.

  2. #2
    Гордость форума PRO +

    Регистрация
    29.11.2013
    Адрес
    Берег Волги
    Сообщений
    2025
    Сказал(а) спасибо
    652
    Поблагодарили 10242 раз(а) в 2701 сообщениях

    По умолчанию Re: Удаление номенклатуры

    Что вы хотите пометить на удаление?
    Если Строка = Справочники.Номенклатура.Н айтиПоКоду(Строка) Тогда
    Здесь вы пытаетесь сравнить текст из файла с ссылкой на элемент справочника. Они никогда не будут равны.
    Попробуйте так
    Если Справочники.Номенклатура.П устаяСсылка()=Справочники.Н оменклатура.НайтиПоКоду(Ст рока) Тогда
    Иначе
    ТекОб=Справочники.Номенкла тура.НайтиПоКоду(Строка).По лучтьОбъект();
    ТекОб.ПометкаУдаления = Истина;
    ТекОб.Записать()
    КонецЕсли;

  3. #3
    Пришел за помощью

    Регистрация
    18.08.2023
    Адрес
    Ашхабад
    Сообщений
    22
    Сказал(а) спасибо
    4
    Поблагодарили 0 раз(а) в 0 сообщениях

    По умолчанию Re: Удаление номенклатуры

    Оказывается не проходит проверка. Я даю файл, в котором содержаться цифро-буквенные значения со спец символами (типа дефиз, если код номенклатуры или символ R в круге если наименование номенклатуры)
    Сообщить(Строка);
    Если Строка = Неопределено Тогда
    Прервать;

    для этого, я дописал вот это (сейчас, на момент написания этого комментария, я работаю дома и не пишу никаких сложных значений в текстовом документе)
    Пока Истина Цикл
    Строка = Текст.ПрочитатьСтроку();

    Если Строка = Неопределено Тогда
    Сообщить(Строка);

    Сообщить("Строка не определена");
    Прервать;
    и функция сообщить мне даёт
    1
    1
    1
    1
    1

    Строка не определена
    E:\1.txt

  4. #4
    Гордость форума PRO +

    Регистрация
    29.11.2013
    Адрес
    Берег Волги
    Сообщений
    2025
    Сказал(а) спасибо
    652
    Поблагодарили 10242 раз(а) в 2701 сообщениях

    По умолчанию Re: Удаление номенклатуры

    Цитата Сообщение от ПётрВладимирович Посмотреть сообщение
    Оказывается не проходит проверка. Я даю файл, в котором содержаться цифро-буквенные значения со спец символами (типа дефиз, если код номенклатуры или символ R в круге если наименование номенклатуры)
    Сообщить(Строка);
    Если Строка = Неопределено Тогда
    Прервать;

    для этого, я дописал вот это (сейчас, на момент написания этого комментария, я работаю дома и не пишу никаких сложных значений в текстовом документе)
    Пока Истина Цикл
    Строка = Текст.ПрочитатьСтроку();

    Если Строка = Неопределено Тогда
    Сообщить(Строка);

    Сообщить("Строка не определена");
    Прервать;
    и функция сообщить мне даёт
    1
    1
    1
    1
    1

    Строка не определена
    E:\1.txt
    Что за цикл?
    Пока Истина Цикл
    По-видимому нужно так:
    Строка = Текст.ПрочитатьСтроку();

    Пока Строка <> Неопределено Цикл
    Строка = Текст.ПрочитатьСтроку();
    Сообщить(Строка);
    КонецЦикла;

Похожие темы

  1. Удаление строк
    от zhake27 в разделе 1С - Предприятие 8.0, 8.1, 8.2, 8.3
    Ответов: 2
    Последнее сообщение: 14.09.2022, 18:25
  2. Удаление данных
    от сергейыв в разделе 1С - Предприятие 8.0, 8.1, 8.2, 8.3
    Ответов: 1
    Последнее сообщение: 19.07.2015, 11:17
  3. 1с 8.1 розница удаление пробелов в коде номенклатуры
    от arturzin в разделе 1С - Предприятие 8.0, 8.1, 8.2, 8.3
    Ответов: 1
    Последнее сообщение: 19.03.2012, 20:55
  4. Удаление в Vista
    от Botanig в разделе Microsoft Windows
    Ответов: 6
    Последнее сообщение: 27.08.2008, 01:35

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •