Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
22 Июл 2017, 09:53
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: (Корректировка движений регистров)  (Прочитано 1341 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн GanG031

  • ***
  • Сообщений: 146
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-10-28
  • Сайт: 
  • Профессия: Ученик 1С
Доброго времени суток! Суть следующая: Есть обработка, которая выгружает определенные данные из регистра накопления, а именно: (Сотрудник, Сумма). Выгружает в текстовый файл txt, Разделяя записи точкой с запятой (;).
Требуется написать обработку, которая будет сравнивать эти выгруженные данные с таким же регистром в этой же конфигурации, а именно соответствие сумм для каждого сотрудника, и если сумма отличается, то изменять на ту, которая в находится в текстовом файле. Все это делается на управляемом приложении 8.3. Подскажите пожалуйста общий алгоритм действий. С тем, что бы написать обработку выгрузки в файл, я разобрался, теперь надо разобраться со сравнением, и изменением значений. Я это вижу примерно как: создаем запрос, где выбираем нужные данные из нужного нам регистра, и в цикле уже читаем нашу выборку, и наш внешний txt файл, и сравниваем значения, но как именно дать соответствие "Сотрудник" из регистра, сотруднику из txt файла, и сравнить суммы? Или может я что то не так понимаю? Помогите пожалуйста! Заранее спасибо!


Оффлайн KatiaP

  • *
  • Сообщений: 4
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-02-10
  • Сайт: 
Представление типа значения в тип строка, а затем сравнение строк

Оффлайн Rasty

  • *****
  • Сообщений: 976
  • РЕПУТАЦИЯ: 137
  • КПД: 14%
  • Регистрация: 2015-03-25
    • Skype: alex1cbit
  • Сайт: 
  • Профессия: Программист 1С
Если у вас сотрудник выгружается Наименование, то делаете найти по наименование, если выгружается код сотрудника, то ищите по коду сотрудника, я бы на вашем месте, сначала парсил файл, создал табличку с данными из файла, потом запросом получал данные из регистра по сотрудникам из таблички, там же в запросе сравнивал сумму из регистра и из таблички (результат сравнения булево), потом методом НайтиСтроки() получал сотрудников, у которых суммы не равны, затем получаем менеджер записи регистра по данному сотруднику и изменяем сумму.
Помогли - Скажи спасибо! Решил сам - поделись решением!
:)

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1097
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
в файле у вас Сотрудник в виде строки.
т.е. надо будет получить ссылку.
скорее всего с помощью НайтиПоНаименованию()
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн GanG031

  • ***
  • Сообщений: 146
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-10-28
  • Сайт: 
  • Профессия: Ученик 1С
Начал делать так:

ПрочитанныйТекст = Новый ЧтениеТекста(ПутьКФайлу);
Запрос = Новый Запрос;
   Запрос.Текст =
      "ВЫБРАТЬ
      |   ДанныеОНачисленияхДляРасчетаСреднегоЗаработкаОбщий.Сотрудник,
      |   ДанныеОНачисленияхДляРасчетаСреднегоЗаработкаОбщий.Сумма
      |ИЗ
      |   РегистрНакопления.ДанныеОНачисленияхДляРасчетаСреднегоЗаработкаОбщий КАК ДанныеОНачисленияхДляРасчетаСреднегоЗаработкаОбщий";
   
   РезультатЗапроса = Запрос.Выполнить();
   
   ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
   СтрокаТекстовогоФайла = ПрочитанныйТекст.ПрочитатьСтроку();


эммм....а что дальше вот, понять не могу...

Оффлайн Rasty

  • *****
  • Сообщений: 976
  • РЕПУТАЦИЯ: 137
  • КПД: 14%
  • Регистрация: 2015-03-25
    • Skype: alex1cbit
  • Сайт: 
  • Профессия: Программист 1С
сначала парсите файл и создаёте ТаблицуЗначений в который заносите данные из файла
Помогли - Скажи спасибо! Решил сам - поделись решением!
:)

Оффлайн GanG031

  • ***
  • Сообщений: 146
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-10-28
  • Сайт: 
  • Профессия: Ученик 1С
сначала парсите файл и создаёте ТаблицуЗначений в который заносите данные из файла


Сделал вот так:

Текст = Новый ТекстовыйДокумент();
Текст.Прочитать("D:\1.txt");
СимволРазделитель = ";";
Для a = 1 По Текст.КоличествоСтрок() Цикл
   Стр = Текст.ПолучитьСтроку(a) ;
   
   ВременнаяСтрока = Стр;
   //найдем разделитель
   НомерСимвола = Найти(ВременнаяСтрока, СимволРазделитель);
   
   Период =  СокрЛП(Лев(ВременнаяСтрока, НомерСимвола -1));
   ВременнаяСтрока =   Сред(ВременнаяСтрока,НомерСимвола + 1);
   
   
   НомерСимвола       = Найти(ВременнаяСтрока,СимволРазделитель);
   Сотрудник = СокрЛП(  Лев(ВременнаяСтрока,НомерСимвола - 1));
   ВременнаяСтрока =   Сред(ВременнаяСтрока,НомерСимвола + 1);
   
   
      НомерСимвола       = Найти(ВременнаяСтрока,СимволРазделитель);
   ТабельныйНомер = СокрЛП(  Лев(ВременнаяСтрока,НомерСимвола - 1));
   ВременнаяСтрока =   Сред(ВременнаяСтрока,НомерСимвола + 1);
   
   
      НомерСимвола       = Найти(ВременнаяСтрока,СимволРазделитель);
   СоставнаяЧасть = СокрЛП(  Лев(ВременнаяСтрока,НомерСимвола - 1));
   ВременнаяСтрока =   Сред(ВременнаяСтрока,НомерСимвола + 1);
   
   
      НомерСимвола       = Найти(ВременнаяСтрока,СимволРазделитель);
   Индексируется = СокрЛП(  Лев(ВременнаяСтрока,НомерСимвола - 1));
   ВременнаяСтрока =   Сред(ВременнаяСтрока,НомерСимвола + 1);
   
   
      
   Сумма =  Число (ВременнаяСтрока);
   
   ТаблицаЗначений = Новый ТаблицаЗначений;
   ТаблицаЗначений.Колонки.Добавить("Период");
   ТаблицаЗначений.Колонки.Добавить("Сотрудник");
   ТаблицаЗначений.Колонки.Добавить("ТабельныйНомер");
   ТаблицаЗначений.Колонки.Добавить("СоставнаяЧасть");
   ТаблицаЗначений.Колонки.Добавить("Индексируется");
   ТаблицаЗначений.Колонки.Добавить("Сумма");
   
   Строка = ТаблицаЗначений.Добавить();
   Строка = стр;


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

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1097
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
Строка = стр;

начали за здравие,
закончили за упокой
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн GanG031

  • ***
  • Сообщений: 146
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-10-28
  • Сайт: 
  • Профессия: Ученик 1С
Строка = стр;

начали за здравие,
закончили за упокой


подскажите, как правильно сделать...

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1097
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
ТаблицаЗначений = Новый ТаблицаЗначений;
   ТаблицаЗначений.Колонки.Добавить("Период");
   ТаблицаЗначений.Колонки.Добавить("Сотрудник");
   ТаблицаЗначений.Колонки.Добавить("ТабельныйНомер");
   ТаблицаЗначений.Колонки.Добавить("СоставнаяЧасть");
   ТаблицаЗначений.Колонки.Добавить("Индексируется");
   ТаблицаЗначений.Колонки.Добавить("Сумма");
   
   Строка = ТаблицаЗначений.Добавить();
   Строка = стр;

Создали ТЗ и добавили в нее новую строку (Строка)
Теперь выше у вас сформировались 6 переменных, прочитанных из файла - ровно столько, сколько у вас колонок.
Обратите внимание что они типа Строка.
Т.е. например Сотрудника надо переделать в СправочникСсылка.Сотрудники,
а Индексируется - скорее всего в булево.

Строке ТЗ надо присвоить эти переменные (где надо меняя тип)
Строка.Период = Период
...
и т.д.
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.


Теги:
 

Документ "Корректировка амортизации"

Автор FiestaРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 4857
Последний ответ 26 Июл 2011, 15:27
от Вероничка
Флаг "Ручная корректировка" в документе

Автор Natylia89Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 5763
Последний ответ 26 Окт 2012, 10:48
от Natylia89
Документ "Корректировка реализации" изменения в релизе 3.0.36.18 в параметре Отражать корректировку

Автор gapp2009Раздел Пользователям "1С - Предприятие 8"

Ответов: 0
Просмотров: 1864
Последний ответ 16 Дек 2014, 02:00
от gapp2009
Контроль остатков товаров в документе "Корректировка реализации"

Автор LadyGaGa2012Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 2173
Последний ответ 14 Май 2014, 12:29
от LadyGaGa2012
Ручная корректировка проводок в документе "Начисление зарплаты"

Автор JemchujinaРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 7296
Последний ответ 04 Июн 2014, 13:05
от omv

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

oleg-x
116 Сообщений
alex0402
102 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
73 Сообщений
AIFrame
50 Сообщений
Golickoff Golickoff
49 Сообщений
ilyay ilyay
49 Сообщений
ab30ru
38 Сообщений
wise wise
34 Сообщений
Амал
30 Сообщений
lansy
22 Сообщений

* Кто онлайн

  • Точка Гостей: 224
  • Точка Скрытых: 0
  • Точка Пользователей: 9
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal